From e76f1a565aca3d2fb0cf4bfd78d494f256ebcaf3 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Fri, 29 Sep 2017 23:14:05 +0200
Subject: [PATCH] Please cherry-pick: - more rewrites towards responsiveness
 and PrimeFaces - added converter for departments (company) - added custom JSF
 tag for administrative mini links for employees - converted more JSF tags
 into a few custom JSF tags, panelGrid is more used - moved out
 project-specific menu items to project.tpl - converted personal-title and
 mobile into selection box (custom JSF tags)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roland Häder <roland@mxchange.org>
---
 ...ncialsAdminBusinessDataWebRequestBean.java |   2 +-
 .../FinancialsBusinessDataWebRequestBean.java |   4 +-
 ...ncialsAdminBranchOfficeWebRequestBean.java |   6 +-
 ...alsAdminCompanyEmployeeWebRequestBean.java | 260 ++++++++++++++++
 ...nancialsCompanyEmployeeWebRequestBean.java |  25 ++
 .../FinancialsWebRequestHelperBean.java       |  91 +++++-
 .../FinancialsBasicCompanyDataConverter.java  |   8 +-
 .../FinancialsCompanyDepartmentConverter.java | 104 +++++++
 .../localization/bundle_de_DE.properties      | 191 +++++++-----
 .../localization/bundle_en_US.properties      | 189 +++++++-----
 web/WEB-INF/faces-config.xml                  |  35 ++-
 web/WEB-INF/links.jsf.taglib.xml              |  25 +-
 .../contact/admin_form_contact_data.tpl       | 288 +++++-------------
 .../mini/employee/admin_employee_links.tpl    |  33 ++
 .../admin/panel_grids/fax/admin_fax_data.tpl  |  14 +-
 .../landline/admin_landline_data.tpl          |  14 +-
 .../panel_grids/mobile/admin_mobile_data.tpl  |  22 +-
 .../input/panel_grid/fax_input_panel_grid.tpl |  20 ++
 .../panel_grid/landline_input_panel_grid.tpl  |  20 ++
 .../panel_grid/mobile_input_panel_grid.tpl    |  24 ++
 .../personal_title_selection_box.tpl          |  17 ++
 .../tags/table_rows/fax_input_table_row.tpl   |  38 +--
 .../table_rows/landline_input_table_row.tpl   |  38 +--
 .../table_rows/mobile_selection_table_row.tpl |  38 ---
 .../user_personal_title_table_row.tpl         |  34 ---
 .../user_profile_mode_table_row.tpl           |  34 +--
 web/WEB-INF/templates/admin/admin_base.tpl    |   2 +-
 web/WEB-INF/templates/admin/admin_footer.tpl  |   2 +-
 web/WEB-INF/templates/admin/admin_menu.tpl    |  94 +++---
 .../admin_form_basic_company_data.tpl         |  30 +-
 .../admin_form_branch_offices_data.tpl        |   8 +-
 .../admin/contact/admin_contact_data_mini.tpl |   4 +-
 .../admin/contact/admin_show_contact_data.tpl |   4 +-
 .../employee/admin_form_employee_data.tpl     | 132 ++++++++
 web/WEB-INF/templates/admin/menu/project.tpl  |   9 +
 .../mobile/admin_form_add_contact_mobile.tpl  |   4 +-
 .../admin/user/admin_show_user_data.tpl       |   4 +-
 .../admin/user/admin_show_user_data_mini.tpl  |   4 +-
 web/WEB-INF/templates/base.tpl                | 194 ++++++------
 .../templates/contact/form_contact_data.tpl   |   4 +-
 web/WEB-INF/templates/guest/guest_footer.tpl  |  10 +-
 web/WEB-INF/templates/guest/guest_menu.tpl    |  10 +-
 .../templates/guest/guest_privacy_terms.tpl   |   4 +-
 .../register/guest_form_register_page1.tpl    |   4 +-
 .../register/guest_form_register_single.tpl   |   4 +-
 .../templates/login/user/user_footer.tpl      |   8 +-
 .../templates/login/user/user_menu.tpl        |  12 +-
 .../widgets/locale_change_widget.tpl          |   6 +-
 web/WEB-INF/web.xml                           |  13 +-
 web/WEB-INF/widgets.jsf.taglib.xml            |  89 ++++--
 web/admin/admin_logout.xhtml                  |   2 +-
 .../admin_basic_company_data_list.xhtml       | 219 +++++++------
 .../admin_branch_office_list.xhtml}           |  48 +--
 web/admin/contact/admin_contact_delete.xhtml  |   4 +-
 web/admin/contact/admin_contact_edit.xhtml    |   6 +-
 web/admin/contact/admin_contact_export.xhtml  |   4 +-
 web/admin/contact/admin_contact_list.xhtml    | 164 +++++-----
 .../unlink/admin_contact_fax_unlink.xhtml     |   2 +-
 .../admin_contact_landline_unlink.xhtml       |   2 +-
 .../unlink/admin_contact_mobile_unlink.xhtml  |   2 +-
 web/admin/country/admin_country_list.xhtml    | 118 ++++---
 web/admin/employee/admin_employee_list.xhtml  | 143 +++++++++
 web/admin/fax/admin_fax_delete.xhtml          |   2 +-
 web/admin/fax/admin_fax_edit.xhtml            |   4 +-
 .../landline/admin_landline_delete.xhtml      |   2 +-
 web/admin/landline/admin_landline_edit.xhtml  |   4 +-
 web/admin/mobile/admin_mobile_delete.xhtml    |   2 +-
 web/admin/mobile/admin_mobile_edit.xhtml      |   4 +-
 .../admin_mobile_provider_list.xhtml          |  19 +-
 web/admin/user/admin_user_delete.xhtml        |   6 +-
 web/admin/user/admin_user_edit.xhtml          |   4 +-
 web/admin/user/admin_user_export.xhtml        |   4 +-
 web/admin/user/admin_user_list.xhtml          | 145 +++++----
 web/admin/user/admin_user_lock.xhtml          |   4 +-
 .../admin_user_resend_confirmation_link.xhtml |   4 +-
 web/admin/user/admin_user_unlock.xhtml        |   4 +-
 web/guest/user/user_login.xhtml               |   4 +-
 web/guest/user/user_profile.xhtml             |   4 +-
 web/guest/user/user_register_done.xhtml       |   2 +-
 web/guest/user/user_resend_link.xhtml         |   2 +-
 web/resources/css/default.css                 |   8 +-
 web/resources/css/layout.css                  |  63 +---
 web/user/login_edit_user_data.xhtml           |   6 +-
 .../login_user_change_email_address.xhtml     |   4 +-
 web/user/login_user_change_password.xhtml     |   2 +-
 .../login_user_change_personal_data.xhtml     |   4 +-
 86 files changed, 2034 insertions(+), 1216 deletions(-)
 create mode 100644 src/java/org/mxchange/jfinancials/converter/business/department/FinancialsCompanyDepartmentConverter.java
 create mode 100644 web/WEB-INF/resources/tags/admin/links/mini/employee/admin_employee_links.tpl
 create mode 100644 web/WEB-INF/resources/tags/input/panel_grid/fax_input_panel_grid.tpl
 create mode 100644 web/WEB-INF/resources/tags/input/panel_grid/landline_input_panel_grid.tpl
 create mode 100644 web/WEB-INF/resources/tags/input/panel_grid/mobile_input_panel_grid.tpl
 create mode 100644 web/WEB-INF/resources/tags/input/selection_box/personal_title_selection_box.tpl
 delete mode 100644 web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl
 delete mode 100644 web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl
 rename web/WEB-INF/templates/admin/{branch_offices => branch_office}/admin_form_branch_offices_data.tpl (96%)
 create mode 100644 web/WEB-INF/templates/admin/employee/admin_form_employee_data.tpl
 create mode 100644 web/WEB-INF/templates/admin/menu/project.tpl
 rename web/admin/{branch_offices/admin_branch_offices_list.xhtml => branch_office/admin_branch_office_list.xhtml} (86%)
 create mode 100644 web/admin/employee/admin_employee_list.xhtml

diff --git a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java
index 5b4943e8..3407f2c8 100644
--- a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsAdminBusinessDataWebRequestBean.java
@@ -44,7 +44,7 @@ import org.mxchange.jusercore.model.user.User;
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
-@Named ("adminCompanyDataController")
+@Named ("adminBasicCompanyDataController")
 @RequestScoped
 public class FinancialsAdminBusinessDataWebRequestBean extends BaseFinancialsBean implements FinancialsAdminBusinessDataWebRequestController {
 
diff --git a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebRequestBean.java
index fca43152..df7a630d 100644
--- a/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebRequestBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/business/basicdata/FinancialsBusinessDataWebRequestBean.java
@@ -30,8 +30,8 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableAdminAddedBusinessBasicDataEvent;
 import org.mxchange.jcontactsbusiness.model.basicdata.AdminBasicCompanyDataSessionBeanRemote;
-import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
 import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
 import org.mxchange.jcountry.model.data.Country;
 import org.mxchange.jfinancials.beans.BaseFinancialsBean;
 import org.mxchange.jfinancials.beans.user.login.FinancialsUserLoginWebSessionController;
@@ -41,7 +41,7 @@ import org.mxchange.jfinancials.beans.user.login.FinancialsUserLoginWebSessionCo
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
-@Named ("basicDataController")
+@Named ("basicCompanyDataController")
 @RequestScoped
 public class FinancialsBusinessDataWebRequestBean extends BaseFinancialsBean implements FinancialsBusinessDataWebRequestController {
 
diff --git a/src/java/org/mxchange/jfinancials/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java
index 235499b2..77e85ff2 100644
--- a/src/java/org/mxchange/jfinancials/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java
@@ -185,7 +185,7 @@ public class FinancialsAdminBranchOfficeWebRequestBean extends BaseFinancialsBea
 		// Is the branch office not created yet?
 		if (this.isBranchOfficeCreatedByRequiredData(branchOffice)) {
 			// Then show proper faces message
-			this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N
+			this.showFacesMessage("form-admin-add-branch-office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N
 			return ""; //NOI18N
 		}
 
@@ -197,7 +197,7 @@ public class FinancialsAdminBranchOfficeWebRequestBean extends BaseFinancialsBea
 			updatedOffice = this.adminBranchOfficeBean.addBranchOffice(branchOffice);
 		} catch (final BranchOfficeAlreadyAddedException ex) {
 			// Output message
-			this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N
+			this.showFacesMessage("form-admin-add-branch-office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N
 			return ""; //NOI18N
 		}
 
@@ -205,7 +205,7 @@ public class FinancialsAdminBranchOfficeWebRequestBean extends BaseFinancialsBea
 		this.branchOfficeAddedEvent.fire(new BranchOfficeAddedEvent(updatedOffice));
 
 		// Redirect to list
-		return "admin_list_branch_offices"; //NOI18N
+		return "admin_list_branch_office"; //NOI18N
 	}
 
 	/**
diff --git a/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsAdminCompanyEmployeeWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsAdminCompanyEmployeeWebRequestBean.java
index ebe70099..e936038b 100644
--- a/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsAdminCompanyEmployeeWebRequestBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsAdminCompanyEmployeeWebRequestBean.java
@@ -19,8 +19,15 @@ package org.mxchange.jfinancials.beans.business.employee;
 import javax.ejb.EJB;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
+import org.mxchange.jcontacts.model.contact.Contact;
+import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
+import org.mxchange.jcontactsbusiness.model.department.Department;
 import org.mxchange.jcontactsbusiness.model.employee.AdminCompanyEmployeeSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.headquarters.HeadquartersData;
 import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
+import org.mxchange.jusercore.model.user.User;
 
 /**
  * A request-scoped bean for administrative purposes for company employees.
@@ -42,6 +49,61 @@ public class FinancialsAdminCompanyEmployeeWebRequestBean extends BaseFinancials
 	@EJB (lookup = "java:global/jfinancials-ejb/adminCompanyEmployee!org.mxchange.jcontactsbusiness.model.employee.AdminCompanyEmployeeSessionBeanRemote")
 	private AdminCompanyEmployeeSessionBeanRemote adminCompanyEmployeeBean;
 
+	/**
+	 * Assigned branch office
+	 */
+	private BranchOffice employeeBranchOffice;
+
+	/**
+	 * Assigned basic data instance
+	 */
+	private BusinessBasicData employeeCompany;
+
+	/**
+	 * Department where employee works (alternative to headquarters)
+	 */
+	private Department employeeDepartment;
+
+	/**
+	 * Employee's business email address
+	 */
+	private String employeeEmailAddress;
+
+	/**
+	 * Employee's Headquarters data, if he is working there
+	 */
+	private HeadquartersData employeeHeadquarters;
+
+	/**
+	 * Assigned personal data of the employee
+	 */
+	private Contact employeePersonalContact;
+
+	/**
+	 * Employee's phone extension (on top of a "main number")
+	 */
+	private Long employeePhoneExtension;
+
+	/**
+	 * Employee's staff number
+	 */
+	private Long employeeStaffNumber;
+
+	/**
+	 * Assigned user account
+	 */
+	private User employeeUserOwner;
+
+	/**
+	 * Mobile number for employee's business mobile
+	 */
+	private Long mobileNumber;
+
+	/**
+	 * Mobile provider instance for employee's business mobile
+	 */
+	private MobileProvider mobileProvider;
+
 	/**
 	 * Default constructor
 	 */
@@ -50,4 +112,202 @@ public class FinancialsAdminCompanyEmployeeWebRequestBean extends BaseFinancials
 		super();
 	}
 
+	/**
+	 * Getter for employee's assigned branch office
+	 * <p>
+	 * @return Employee's assigned branch office
+	 */
+	public BranchOffice getEmployeeBranchOffice () {
+		return this.employeeBranchOffice;
+	}
+
+	/**
+	 * Setter for employee's assigned branch office
+	 * <p>
+	 * @param employeeBranchOffice Employee's assigned branch office
+	 */
+	public void setEmployeeBranchOffice (final BranchOffice employeeBranchOffice) {
+		this.employeeBranchOffice = employeeBranchOffice;
+	}
+
+	/**
+	 * Getter for employee's assigned basic company data
+	 * <p>
+	 * @return Employee's assigned basic company data
+	 */
+	public BusinessBasicData getEmployeeCompany () {
+		return this.employeeCompany;
+	}
+
+	/**
+	 * Setter for employee's assigned basic company data
+	 * <p>
+	 * @param employeeCompany Employee's assigned basic company data
+	 */
+	public void setEmployeeCompany (final BusinessBasicData employeeCompany) {
+		this.employeeCompany = employeeCompany;
+	}
+
+	/**
+	 * Getter for employee's assigned department
+	 * <p>
+	 * @return Employee's assigned department
+	 */
+	public Department getEmployeeDepartment () {
+		return this.employeeDepartment;
+	}
+
+	/**
+	 * Setter for employee's assigned department
+	 * <p>
+	 * @param employeeDepartment Employee's assigned department
+	 */
+	public void setEmployeeDepartment (final Department employeeDepartment) {
+		this.employeeDepartment = employeeDepartment;
+	}
+
+	/**
+	 * Getter for employee's business email address
+	 * <p>
+	 * @return Employee's business email address
+	 */
+	public String getEmployeeEmailAddress () {
+		return this.employeeEmailAddress;
+	}
+
+	/**
+	 * Setter for employee's business email address
+	 * <p>
+	 * @param employeeEmailAddress Employee's business email address
+	 */
+	public void setEmployeeEmailAddress (final String employeeEmailAddress) {
+		this.employeeEmailAddress = employeeEmailAddress;
+	}
+
+	/**
+	 * Getter for employee's assigned headquarters (if no branch office)
+	 * <p>
+	 * @return Employee's assigned headquarters
+	 */
+	public HeadquartersData getEmployeeHeadquarters () {
+		return this.employeeHeadquarters;
+	}
+
+	/**
+	 * Setter for employee's assigned headquarters (if no branch office)
+	 * <p>
+	 * @param employeeHeadquarters Employee's assigned headquarters
+	 */
+	public void setEmployeeHeadquarters (final HeadquartersData employeeHeadquarters) {
+		this.employeeHeadquarters = employeeHeadquarters;
+	}
+
+	/**
+	 * Getter for employee's personal contact data
+	 * <p>
+	 * @return Employee's personal contact data
+	 */
+	public Contact getEmployeePersonalContact () {
+		return this.employeePersonalContact;
+	}
+
+	/**
+	 * Setter for employee's personal contact data
+	 * <p>
+	 * @param employeePersonalContact Employee's personal contact data
+	 */
+	public void setEmployeePersonalContact (final Contact employeePersonalContact) {
+		this.employeePersonalContact = employeePersonalContact;
+	}
+
+	/**
+	 * Getter for employee's phone extension
+	 * <p>
+	 * @return Employee's phone extension
+	 */
+	public Long getEmployeePhoneExtension () {
+		return this.employeePhoneExtension;
+	}
+
+	/**
+	 * Getter for employee's phone extension
+	 * <p>
+	 * @param employeePhoneExtension Employee's phone extension
+	 */
+	public void setEmployeePhoneExtension (final Long employeePhoneExtension) {
+		this.employeePhoneExtension = employeePhoneExtension;
+	}
+
+	/**
+	 * Getter for employee's staff number
+	 * <p>
+	 * @return Employee's staff number
+	 */
+	public Long getEmployeeStaffNumber () {
+		return this.employeeStaffNumber;
+	}
+
+	/**
+	 * Setter for employee's staff number
+	 * <p>
+	 * @param employeeStaffNumber Employee's staff number
+	 */
+	public void setEmployeeStaffNumber (final Long employeeStaffNumber) {
+		this.employeeStaffNumber = employeeStaffNumber;
+	}
+
+	/**
+	 * Getter for employee's user "owner"
+	 * <p>
+	 * @return Employee's user "owner"
+	 */
+	public User getEmployeeUserOwner () {
+		return this.employeeUserOwner;
+	}
+
+	/**
+	 * Setter for employee's user "owner"
+	 * <p>
+	 * @param employeeUserOwner Employee's user "owner"
+	 */
+	public void setEmployeeUserOwner (final User employeeUserOwner) {
+		this.employeeUserOwner = employeeUserOwner;
+	}
+
+	/**
+	 * Getter for mobile number
+	 * <p>
+	 * @return Mobile number
+	 */
+	public Long getMobileNumber () {
+		return this.mobileNumber;
+	}
+
+	/**
+	 * Setter for mobile number
+	 * <p>
+	 * @param mobileNumber Mobile number
+	 */
+	public void setMobileNumber (final Long mobileNumber) {
+		this.mobileNumber = mobileNumber;
+	}
+
+	/**
+	 * Getter for mobile provider instance
+	 * <p>
+	 * @return Mobile provider instance
+	 */
+	public MobileProvider getMobileProvider () {
+		return this.mobileProvider;
+	}
+
+	/**
+	 * Setter for mobile provider instance
+	 * <p>
+	 * @param mobileProvider Mobile provider instance
+	 */
+	public void setMobileProvider (final MobileProvider mobileProvider) {
+		this.mobileProvider = mobileProvider;
+	}
+
 }
diff --git a/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsCompanyEmployeeWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsCompanyEmployeeWebRequestBean.java
index a371b3b5..56869c26 100644
--- a/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsCompanyEmployeeWebRequestBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/business/employee/FinancialsCompanyEmployeeWebRequestBean.java
@@ -57,6 +57,11 @@ public class FinancialsCompanyEmployeeWebRequestBean extends BaseFinancialsBean
 	@NamedCache (cacheName = "companyEmployeeCache")
 	private Cache<Long, Employee> companyEmployeeCache;
 
+	/**
+	 * A list of filtered employees
+	 */
+	private List<Employee> filteredEmployees;
+
 	/**
 	 * Default constructor
 	 */
@@ -91,6 +96,26 @@ public class FinancialsCompanyEmployeeWebRequestBean extends BaseFinancialsBean
 		return list;
 	}
 
+	/**
+	 * Getter for filtered list of employees
+	 * <p>
+	 * @return Filtered list of employees
+	 */
+	@SuppressWarnings ("ReturnOfCollectionOrArrayField")
+	public List<Employee> getFilteredEmployees () {
+		return this.filteredEmployees;
+	}
+
+	/**
+	 * Getter for filtered list of employees
+	 * <p>
+	 * @param filteredEmployees Filtered list of employees
+	 */
+	@SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
+	public void setFilteredEmployees (final List<Employee> filteredEmployees) {
+		this.filteredEmployees = filteredEmployees;
+	}
+
 	/**
 	 * Initialization method
 	 */
diff --git a/src/java/org/mxchange/jfinancials/beans/helper/FinancialsWebRequestHelperBean.java b/src/java/org/mxchange/jfinancials/beans/helper/FinancialsWebRequestHelperBean.java
index 923036a5..4103fd4d 100644
--- a/src/java/org/mxchange/jfinancials/beans/helper/FinancialsWebRequestHelperBean.java
+++ b/src/java/org/mxchange/jfinancials/beans/helper/FinancialsWebRequestHelperBean.java
@@ -20,13 +20,14 @@ import java.text.MessageFormat;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.event.Event;
 import javax.enterprise.inject.Any;
-import javax.faces.context.FacesContext;
 import javax.inject.Inject;
 import javax.inject.Named;
 import org.mxchange.jcontacts.events.contact.created.CreatedContactEvent;
 import org.mxchange.jcontacts.events.contact.created.ObservableCreatedContactEvent;
 import org.mxchange.jcontacts.model.contact.Contact;
 import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
+import org.mxchange.jcontactsbusiness.model.department.Department;
+import org.mxchange.jcontactsbusiness.model.headquarters.HeadquartersData;
 import org.mxchange.jfinancials.beans.BaseFinancialsBean;
 import org.mxchange.jfinancials.beans.contact.FinancialsAdminContactWebRequestController;
 import org.mxchange.jfinancials.beans.phone.FinancialsAdminPhoneWebRequestController;
@@ -471,14 +472,16 @@ public class FinancialsWebRequestHelperBean extends BaseFinancialsBean implement
 		// Is a branch office instance given?
 		if (branchOffice instanceof BranchOffice) {
 			// Yes, then append all data
-			sb.append(", ");
+			sb.append(branchOffice.getBranchCompany().getCompanyName());
+			sb.append(", "); //NOI18N
 			sb.append(branchOffice.getBranchStreet());
-			sb.append(" ");
+			sb.append(" "); //NOI18N
 			sb.append(branchOffice.getBranchHouseNumber());
-			sb.append(", ");
+			sb.append(", "); //NOI18N
 			sb.append(branchOffice.getBranchCountry().getCountryCode());
-			sb.append(" ");
+			sb.append(" "); //NOI18N
 			sb.append(branchOffice.getBranchZipCode());
+			sb.append(" "); //NOI18N
 			sb.append(branchOffice.getBranchCity());
 		}
 
@@ -492,7 +495,7 @@ public class FinancialsWebRequestHelperBean extends BaseFinancialsBean implement
 	 * <p>
 	 * @param contact Contact instance
 	 * <p>
-	 * @return Contact's name
+	 * @return Contact's full name
 	 */
 	public String renderContact (final Contact contact) {
 		// Default is empty string, so let's get started
@@ -501,7 +504,81 @@ public class FinancialsWebRequestHelperBean extends BaseFinancialsBean implement
 		// Is contact set?
 		if (contact instanceof Contact) {
 			// Then create name
-			sb.append(String.format(FacesContext.getCurrentInstance().getViewRoot().getLocale(), "{0} {1}, {2}", this.getMessageFromBundle(contact.getContactPersonalTitle().getMessageKey()), contact.getContactFamilyName(), contact.getContactFirstName())); //NOI18N
+			sb.append(this.getMessageFromBundle(contact.getContactPersonalTitle().getMessageKey()));
+			sb.append(" "); //NOI18N
+			sb.append(contact.getContactFamilyName());
+			sb.append(" "); //NOI18N
+			sb.append(contact.getContactFirstName());
+		}
+
+		// Return it
+		return sb.toString();
+	}
+
+	/**
+	 * Returns the department's name and name of assigned company. If null is
+	 * provided, an empty string is returned.
+	 * <p>
+	 * @param department Department instance
+	 * <p>
+	 * @return Department's full name
+	 */
+	public String renderDepartment (final Department department) {
+		// Default is empty string, so let's get started
+		final StringBuilder sb = new StringBuilder(10);
+
+		// Is a department set?
+		if (department instanceof Department) {
+			// Then create name
+			sb.append(department.getDepartmentName());
+			sb.append(" ("); //NOI18N
+			sb.append(department.getDepartmentCompany().getCompanyName());
+			sb.append(")"); //NOI18N
+		}
+
+		// Return it
+		return sb.toString();
+	}
+
+	/**
+	 * Returns the headquarters' address. If null is
+	 * provided, an empty string is returned.
+	 * <p>
+	 * @param headquarters Headquarters instance
+	 * <p>
+	 * @return Headquarters' address
+	 */
+	public String renderHeadquarters (final HeadquartersData headquarters) {
+		// Default is empty string, so let's get started
+		final StringBuilder sb = new StringBuilder(10);
+
+		// Is a headquarters set?
+		if (headquarters instanceof HeadquartersData) {
+			// Then create name
+			sb.append(headquarters.getHeadquartersStreet());
+			sb.append(" "); //NOI18N
+			sb.append(headquarters.getHeadquartersHouseNumber());
+
+			// Is store/suite number set?
+			if (headquarters.getHeadquartersStore() instanceof Short) {
+				sb.append(" ("); //NOI18N
+				sb.append(this.getMessageFromBundle("DATA_STORE")); //NOI18N
+				sb.append(" "); //NOI18N
+				sb.append(headquarters.getHeadquartersStore());
+				sb.append(", "); //NOI18N
+				sb.append(this.getMessageFromBundle("DATA_SUITE_NUMBER")); //NOI18N
+				sb.append(" "); //NOI18N
+				sb.append(headquarters.getHeadquartersSuiteNumber());
+				sb.append(")"); //NOI18N
+			}
+
+			// Continue with country, ZIP code and city
+			sb.append(", "); //NOI18N
+			sb.append(headquarters.getHeadquartersCountry().getCountryCode());
+			sb.append(" "); //NOI18N
+			sb.append(headquarters.getHeadquartersZipCode());
+			sb.append(" "); //NOI18N
+			sb.append(headquarters.getHeadquartersCity());
 		}
 
 		// Return it
diff --git a/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java b/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java
index 63bf0064..7c8d130e 100644
--- a/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java
+++ b/src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java
@@ -39,7 +39,7 @@ import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
 public class FinancialsBasicCompanyDataConverter implements Converter<BusinessBasicData> {
 
 	/**
-	 * Business contact EJB
+	 * Basic company data EJB
 	 */
 	private static BasicCompanyDataSessionBeanRemote BASIC_DATA_BEAN;
 
@@ -69,14 +69,14 @@ public class FinancialsBasicCompanyDataConverter implements Converter<BusinessBa
 		}
 
 		// Init instance
-		BusinessBasicData businessContact = null;
+		BusinessBasicData basicData = null;
 
 		try {
 			// Try to parse the value as long
 			final Long basicDataId = Long.valueOf(submittedValue);
 
 			// Try to get user instance from it
-			businessContact = BASIC_DATA_BEAN.findBasicDataById(basicDataId);
+			basicData = BASIC_DATA_BEAN.findBasicDataById(basicDataId);
 		} catch (final NumberFormatException ex) {
 			// Throw again
 			throw new ConverterException(ex);
@@ -86,7 +86,7 @@ public class FinancialsBasicCompanyDataConverter implements Converter<BusinessBa
 		}
 
 		// Return it
-		return businessContact;
+		return basicData;
 	}
 
 	@Override
diff --git a/src/java/org/mxchange/jfinancials/converter/business/department/FinancialsCompanyDepartmentConverter.java b/src/java/org/mxchange/jfinancials/converter/business/department/FinancialsCompanyDepartmentConverter.java
new file mode 100644
index 00000000..5686d360
--- /dev/null
+++ b/src/java/org/mxchange/jfinancials/converter/business/department/FinancialsCompanyDepartmentConverter.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016, 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.converter.business.department;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.convert.FacesConverter;
+import javax.faces.validator.ValidatorException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import org.mxchange.jcontactsbusiness.exceptions.department.CompanyDepartmentNotFoundException;
+import org.mxchange.jcontactsbusiness.model.department.CompanyDepartmentSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.department.Department;
+
+/**
+ * Converter for company department id <-> instance
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesConverter ("CompanyDepartmentConverter")
+public class FinancialsCompanyDepartmentConverter implements Converter<Department> {
+
+	/**
+	 * Company department EJB
+	 */
+	private static CompanyDepartmentSessionBeanRemote COMPANY_DEPARTMENT_BEAN;
+
+	@Override
+	public Department getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+		// Is the instance there?
+		if (COMPANY_DEPARTMENT_BEAN == null) {
+			try {
+				// Not yet, attempt lookup
+				final Context initial = new InitialContext();
+
+				// Lookup EJB
+				COMPANY_DEPARTMENT_BEAN = (CompanyDepartmentSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyDepartment!org.mxchange.jcontactsbusiness.model.department.CompanyDepartmentSessionBeanRemote"); //NOI18N
+			} catch (final NamingException ex) {
+				// Throw it again
+				throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex); //NOI18N
+			}
+		}
+
+		// Is the value null or empty?
+		if ((null == submittedValue) || (submittedValue.trim().isEmpty())) {
+			// Warning message
+			// @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logWarning(MessageFormat.format("{0}.getAsObject(): submittedValue is null or empty - EXIT!", this.getClass().getSimpleName())); //NOI18N
+
+			// Return null
+			return null;
+		}
+
+		// Init instance
+		Department companyDepartment = null;
+
+		try {
+			// Try to parse the value as long
+			final Long departmentId = Long.valueOf(submittedValue);
+
+			// Try to get user instance from it
+			companyDepartment = COMPANY_DEPARTMENT_BEAN.findDepartmentById(departmentId);
+		} catch (final NumberFormatException ex) {
+			// Throw again
+			throw new ConverterException(ex);
+		} catch (final CompanyDepartmentNotFoundException ex) {
+			// Debug message
+			// @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
+		}
+
+		// Return it
+		return companyDepartment;
+	}
+
+	@Override
+	public String getAsString (final FacesContext context, final UIComponent component, final Department value) {
+		// Is the object null?
+		if ((null == value) || (String.valueOf(value).isEmpty())) {
+			// Is null
+			return ""; //NOI18N
+		}
+
+		// Return id number
+		return String.valueOf(value.getDepartmentId());
+	}
+
+}
diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties
index a6ff377c..cc8568c8 100644
--- a/src/java/org/mxchange/localization/bundle_de_DE.properties
+++ b/src/java/org/mxchange/localization/bundle_de_DE.properties
@@ -32,17 +32,17 @@ GUEST_ENTER_USER_LOGIN_DATA_TITLE=Bitte geben Sie Ihrem Benutzernamen und Passwo
 GUEST_ENTER_USER_LOGIN_DATA_LEGEND_TITLE=Bitte geben Sie Ihren Benutzernamen und das dazugeh\u00f6rige Passwort ein.
 GUEST_ENTER_USER_LOGIN_DATA_LEGEND=Bitte Zugangsdaten eingeben:
 ENTER_PASSWORD=Passwort:
-LINK_GUEST_HOME_TITLE=Eingangsseite aufrufen
-LINK_GUEST_HOME=Home
+GUEST_LINK_HOME_TITLE=Eingangsseite aufrufen
+GUEST_LINK_HOME=Home
 LINK_CLOSE_SESSION_TITLE=Sitzung beennden
 LINK_CLOSE_SESSION=Sitzung beenden
 MENU_HOME_TITLE=Home
-LINK_GUEST_LOGIN_TITLE=Login zum Benutzerbereich:
-LINK_GUEST_LOGIN=Einloggen
-LINK_GUEST_REGISTER_TITLE=Anmeldung als neuer Benutzer
-LINK_GUEST_REGISTER=Neuer Benutzer
-LINK_GUEST_PASSWORD_TITLE=Neues Passwort erstellen
-LINK_GUEST_PASSWORD=Passwort vergessen?
+GUEST_LOGIN_LINK_TITLE=Login zum Benutzerbereich:
+GUEST_LINK_LOGIN=Einloggen
+GUEST_LINK_REGISTER_TITLE=Anmeldung als neuer Benutzer
+GUEST_LINK_REGISTER=Neuer Benutzer
+GUEST_LINK_PASSWORD_TITLE=Neues Passwort erstellen
+GUEST_LINK_PASSWORD=Passwort vergessen?
 PAGE_TITLE_INDEX_IMPRINT=Impressum
 CONTENT_TITLE_INDEX_IMPRINT=Impressum:
 GUEST_REGISTRATION_TITLE=Anmelden als Benutzer
@@ -87,43 +87,43 @@ PAGE_TITLE_INDEX_PRIVACY=Datenschutzbestimmungen
 CONTENT_TITLE_INDEX_PRIVACY=Datenschutzbestimmungen:
 ADMIN_MENU_MAIN_TITLE=Hauptauswahl
 ADMIN_MENU_LOGOUT_TITLE=Ausloggen
-LINK_ADMIN_INDEX_TITLE=Zur Willkommensseite
-LINK_ADMIN_LOGOUT_TITLE=Ausloggen
-LINK_ADMIN_TO_WEBPAGE_TITLE=Zur Webseite, aber eingeloggt bleiben
-LINK_ADMIN_INDEX=Home
-LINK_ADMIN_LOGOUT=Ausloggen
-LINK_ADMIN_TO_WEBPAGE=Webseite aufrufen
-LINK_ADMIN_FOOTER_TO_WEBPAGE=Zur Webseite
-LINK_GUEST_IMPRINT=Impressum
-LINK_GUEST_TERMS=AGBs
-LINK_GUEST_PRIVACY=Datenschutz
-LINK_GUEST_IMPRINT_TITLE=Impressum aufrufen
-LINK_GUEST_TERMS_TITLE=Allgemeine Gesch\u00e4ftsbedingungen
-LINK_GUEST_PRIVACY_TITLE=Datenschutzbestimmungen ansehen
+ADMIN_LINK_INDEX_TITLE=Zur Willkommensseite
+ADMIN_LINK_LOGOUT_TITLE=Ausloggen
+ADMIN_LINK_TO_WEBPAGE_TITLE=Zur Webseite, aber eingeloggt bleiben
+ADMIN_LINK_INDEX=Home
+ADMIN_LINK_LOGOUT=Ausloggen
+ADMIN_LINK_TO_WEBPAGE=Webseite aufrufen
+ADMIN_LINK_FOOTER_TO_WEBPAGE=Zur Webseite
+GUEST_LINK_IMPRINT=Impressum
+GUEST_LINK_TERMS=AGBs
+GUEST_LINK_PRIVACY=Datenschutz
+GUEST_LINK_IMPRINT_TITLE=Impressum aufrufen
+GUEST_LINK_TERMS_TITLE=Allgemeine Gesch\u00e4ftsbedingungen
+GUEST_LINK_PRIVACY_TITLE=Datenschutzbestimmungen ansehen
 MENU_USER_TITLE=Benutzer
 ENTER_USER_NAME=Benutzernamen:
 BUTTON_USER_LOGIN=Einloggen
 BUTTON_CONTINUE_STEP_2=Weiter zu Schritt 2
 GUEST_REGISTRATION_ENTER_USER_NAME=Benutzernamen eingeben:
 GUEST_REGISTRATION_USER_NAME_NOTICE=Der Benutzername darf nur einmal vorkommen.
-LINK_GUEST_RESENT_CONFIRMATION_LINK=Nochmals den Best\u00e4tigungslink aussenden?
+GUEST_LINK_RESENT_CONFIRMATION_LINK=Nochmals den Best\u00e4tigungslink aussenden?
 GUEST_USER_REGISTRATION_COMPLETED=Die Anmeldung ist abgeschlossen und Ihr Account wartet auf Freischaltung. Es ist eine Email mit einem entsprechenden Best\u00e4tigungslink zu Ihnen unterwegs. Diesen m\u00fcssen Sie einmal anklicken oder in die Adresszeile des Browsers kopieren und dann aufrufen lassen. Danach ist Ihr Account freigegeben.
 PERSONAL_DATA_COUNTRY_CODE=L\u00e4ndercode:
 PAGE_TITLE_USER_REGISTER_DONE=Anmeldung abgeschlossen
 CONTENT_TITLE_USER_REGISTER_DONE=Die Anmeldung ist abgeschlossen:
 PAGE_TITLE_INDEX_RESEND_LINK=Best\u00e4tigungslink erneut aussenden
 CONTENT_TITLE_INDEX_RESEND_LINK=Best\u00e4tigungslink anfordern:
-LINK_GUEST_RESEND_LINK=Best\u00e4tigungslink
-LINK_GUEST_RESEND_LINK_TITLE=Best\u00e4tigungslink erneut aussenden
-LINK_LOGIN_HOME_TITLE=Zur \u00dcbersichtsseite
-LINK_LOGIN_HOME=\u00dcbersicht
+GUEST_LINK_RESEND_LINK=Best\u00e4tigungslink
+GUEST_LINK_RESEND_LINK_TITLE=Best\u00e4tigungslink erneut aussenden
+LOGIN_LINK_HOME_TITLE=Zur \u00dcbersichtsseite
+LOGIN_LINK_HOME=\u00dcbersicht
 MENU_LOGOUT_TITLE=Ausloggen
 CLICK_HERE=hier
 GUEST_ALREADY_USER_CONTINUE_LOGIN_1=Sie sind bereits angemeldet? Dann
 GUEST_ALREADY_USER_CONTINUE_LOGIN_2=einloggen.
 PAGE_TITLE_USER_LOGIN_HOME=Willkommen zum Benutzerbereich
 CONTENT_TITLE_USER_LOGIN_HOME=\u00dcbersicht Ihrer Bewerbungen:
-LINK_LOGIN_LOGOUT=Ausloggen
+LOGIN_LINK_LOGOUT=Ausloggen
 COUNTRY_GERMANY=Deutschland
 COUNTRY_PHILIPPINES=Philippinen
 NONE_SELECTED=k.A.
@@ -159,18 +159,18 @@ LOGIN_NO_PASSWORD_MESSAGE=Sie haben kein Passwort eingegeben.
 LOGIN_NO_USER_NAME_MESSAGE=Sie haben keinen Benutzernamen eingegeben.
 USER_NOT_LOGGED_IN=Sie sind nicht angemeldet.
 LOGIN_OWN_PROFILE_INVISIBLE=Ihr Profil ist auf "durchsichtig" gestellt.
-LINK_GUEST_LOGIN_LOST_PASSWORD=Passwort vergessen?
+GUEST_LINK_USER_LOST_PASSWORD=Passwort vergessen?
 LINK_TITLE_GUEST_LOGIN_LOST_PASSWORD=Passwort wiederherstellen
 TABLE_HEADER_ERROR_USER_NOT_LOGGED_IN=Sie m\u00fcssen angemeldet sein
 USER_IS_NOT_LOGGED_IN_FULL=Damit diese Funktion nutzen k\u00f6nnen, m\u00fcssen Sie sich anmelden und in Ihren Account eingeloggt sein.
 LOGIN_EDIT_USER_DATA_TITLE=Was m\u00f6chten Sie \u00e4ndern?
 LOGIN_CHOOSE_PERSONAL_DATA_EMAIL_PASSWORD_NOTICE=Sie k\u00f6nnen hier Ihre pers\u00f6nlichen Daten, Ihre Email-Adresse und Ihr Passwort zum Einloggen \u00e4ndern.
-LINK_LOGIN_CHANGE_PERSONAL_DATA=Pers\u00f6nliche Daten, wie Anschrift usw. \u00e4ndern
-LINK_LOGIN_CHANGE_PERSONAL_DATA_TITLE=\u00c4ndern Sie hier Ihre pers\u00f6nlichen Daten, wie Anschrift, Telefonnummer und so weiter.
-LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS=Ihre Email-Adresse \u00e4ndern
-LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS_TITLE=\u00c4ndern Sie hier Ihre Email-Adresse. Dies ben\u00f6tigt eine weitere Best\u00e4tigung und kann auch zur\u00fcckg\u00e4ngig gemacht werden.
-LINK_LOGIN_CHANGE_PASSWORD=Ihr Passwort \u00e4ndern
-LINK_LOGIN_CHANGE_PASSWORD_TITLE=\u00c4ndern Sie hier Ihr Passwort, falls Sie ein anderes m\u00f6chten.
+LOGIN_LINK_CHANGE_PERSONAL_DATA=Pers\u00f6nliche Daten, wie Anschrift usw. \u00e4ndern
+LOGIN_LINK_CHANGE_PERSONAL_DATA_TITLE=\u00c4ndern Sie hier Ihre pers\u00f6nlichen Daten, wie Anschrift, Telefonnummer und so weiter.
+LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS=Ihre Email-Adresse \u00e4ndern
+LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS_TITLE=\u00c4ndern Sie hier Ihre Email-Adresse. Dies ben\u00f6tigt eine weitere Best\u00e4tigung und kann auch zur\u00fcckg\u00e4ngig gemacht werden.
+LOGIN_LINK_CHANGE_PASSWORD=Ihr Passwort \u00e4ndern
+LOGIN_LINK_CHANGE_PASSWORD_TITLE=\u00c4ndern Sie hier Ihr Passwort, falls Sie ein anderes m\u00f6chten.
 LOGIN_USER_CHANGE_PERSONAL_DATA_TITLE=Pers\u00f6nliche Daten \u00e4ndern:
 LOGIN_ENTER_CURRENT_PASSWORD_CONFIRMATION_LEGEND=Bitte derzeitiges Passwort zur Best\u00e4tigung eingeben:
 LOGIN_ENTER_CURRENT_PASSWORD_CONFIRMATION_LEGEND_TITLE=Bitte geben Sie ihr derzeitiges Passwort zur Best\u00e4tigung der \u00c4nderungen ein.
@@ -221,14 +221,14 @@ EN_US=English (US)
 CONTENT_PAGE_INDEX_PARA1=Text fuer 1. Absatz.
 CONTENT_PAGE_INDEX_PARA2=Text fuer 2. Absatz.
 CONTENT_PAGE_INDEX_PARA3=Text fuer 3. Absatz.
-LINK_ADMIN_LIST_USER=Benuzteraccounts auflisten
-LINK_ADMIN_LIST_USER_TITLE=Alle bestehenden Benutzeraccounts auflisten.
-LINK_ADMIN_EDIT_USER=Benuzteraccount editieren
-LINK_ADMIN_EDIT_USER_TITLE=\u00c4ndern Sie hier die Accounts Ihrer Benutzer.
-LINK_ADMIN_DELETE_USER=Benuzteraccount l\u00f6schen
-LINK_ADMIN_DELETE_USER_TITLE=L\u00f6schen Sie hier bestehende Benutzeraccounts.
-LINK_ADMIN_UNLOCK_USER=Entsperren von Benutzeraccounts
-LINK_ADMIN_UNLOCK_USER_TITLE=Entsperren Sie hier Benutzeraccounts.
+ADMIN_LINK_LIST_USER=Benuzteraccounts auflisten
+ADMIN_LINK_LIST_USER_TITLE=Alle bestehenden Benutzeraccounts auflisten.
+ADMIN_LINK_EDIT_USER=Benuzteraccount editieren
+ADMIN_LINK_EDIT_USER_TITLE=\u00c4ndern Sie hier die Accounts Ihrer Benutzer.
+ADMIN_LINK_DELETE_USER=Benuzteraccount l\u00f6schen
+ADMIN_LINK_DELETE_USER_TITLE=L\u00f6schen Sie hier bestehende Benutzeraccounts.
+ADMIN_LINK_UNLOCK_USER=Entsperren von Benutzeraccounts
+ADMIN_LINK_UNLOCK_USER_TITLE=Entsperren Sie hier Benutzeraccounts.
 PAGE_TITLE_ADMIN_LIST_USER=Benutzeraccounts auflisten
 CONTENT_TITLE_ADMIN_LIST_USER=Auflisten von Benutzeraccounts:
 PAGE_TITLE_ADMIN_EDIT_USER=Benuzteraccount editieren
@@ -238,7 +238,7 @@ CONTENT_TITLE_ADMIN_UNLOCK_USER=Entsperren von Benutzeraccounts:
 ADMIN_MENU_USER_TITLE=Benutzerverwaltung
 PAGE_TITLE_ADMIN_ADD_USER=Neues Benutzeraccount hinzufuegen
 CONTENT_TITLE_ADMIN_ADD_USER=Neues Benutzeraccount hinzufuegen:
-TABLE_SUMMARY_ADMIN_LIST_USERS=Administration, alle Benutzer auflisten
+TABLE_SUMMARY_ADMIN_LIST_USERS=Diese Tabelle listet Administration, alle Benutzer auf.
 ADMIN_ADD_USER_TITLE=Neues Benutzeraccount anlegen
 ADMIN_USER_PERSONAL_DATA_MINIMUM_NOTICE=Bitte geben Sie mindestens Anrede, Vor- und Nachnamen, sowie Benutzernamen und Email-Adresse ein.
 ADMIN_CONTACT_PERSONAL_DATA_LEGEND=Pers\u00f6nliche Daten des Benutzers:
@@ -263,8 +263,8 @@ ADMIN_USER_DATA_PASSWORD_ADD_NOTICE=Lassen Sie beide Passwortfelder leer und es
 ADMIN_CONTACT_DATA_EMAIL_ADDRESS_NOTICE=Die Email-Adresse darf nur einmal vorhanden sein.
 BUTTON_ADMIN_ADD_USER=Neues Benutzeraccount hinzuf\u00fcgen
 ADMIN_MENU_COUNTRY_TITLE=L\u00e4nderdaten
-LINK_ADMIN_LIST_COUNTRIES=L\u00e4nder auflisten
-LINK_ADMIN_LIST_COUNTRIES_TITLE=Bestehende L\u00e4nderdaten auflisten, neue hinzuf\u00fcgen, \u00e4ndern und l\u00f6schen.
+ADMIN_LINK_LIST_COUNTRIES=L\u00e4nder auflisten
+ADMIN_LINK_LIST_COUNTRIES_TITLE=Bestehende L\u00e4nderdaten auflisten, neue hinzuf\u00fcgen, \u00e4ndern und l\u00f6schen.
 PAGE_TITLE_ADMIN_LIST_COUNTRY=L\u00e4nderdaten verwalten
 CONTENT_TITLE_ADMIN_LIST_COUNTRY=L\u00e4nderdaten verwalten:
 ADMIN_ADD_COUNTRY_TITLE=Neues Land hinzuf\u00fcgen
@@ -287,10 +287,10 @@ ADMIN_LIST_COUNTRY_DATA_COUNTRY_CODE=L\u00e4ndercode:
 ADMIN_LIST_COUNTRY_DATA_COUNTRY_EXTERNAL_DIAL_PREFIX=Vorwahl ausserorts:
 ADMIN_LIST_COUNTRY_DATA_COUNTRY_NAME=Land:
 ADMIN_LINK_EDIT_DELETE_COUNTRY_TITLE=Editieren oder l\u00f6schen der L\u00e4nderdaten
-TABLE_SUMMARY_ADMIN_LIST_COUNTRIES=Listet alle bereits angelegten L\u00e4nderdaten auf.
+TABLE_SUMMARY_ADMIN_LIST_COUNTRIES=Diese Tabelle listet alle bereits angelegten L\u00e4nderdaten auf.
 COUNTRY_GERMANY=Deutschland
 ADMIN_MENU_MOBILE_PROVIDER_TITLE=Handyanbieter
-LINK_ADMIN_LIST_MOBILE_PROVIDER_TITLE=Hinzuf\u00fcgen, auflisten, \u00e4ndern und l\u00f6schen von Handyanbietern.
+ADMIN_LINK_LIST_MOBILE_PROVIDER_TITLE=Hinzuf\u00fcgen, auflisten, \u00e4ndern und l\u00f6schen von Handyanbietern.
 PAGE_TITLE_ADMIN_MOBILE_PROVIDER_LIST=Handyanbieter verwalten
 CONTENT_TITLE_ADMIN_MOBILE_PROVIDER_LIST=Verwalten von Handyanbietern:
 PAGE_TITLE_ADMIN_MOBILE_PROVIDER_EDIT=Handyanbieter editieren
@@ -301,8 +301,8 @@ ADMIN_ADD_MOBILE_PROVIDER_TITLE=Handyanbieter hinzuf\u00fcgen
 ADMIN_MOBILE_PROVIDER_MINIMUM_NOTICE=Es m\u00fcssen alle Fehler ausgef\u00fcllt werden.
 ADMIN_MOBILE_PROVIDER_LEGEND=Daten des Handyanbieters eingeben:
 ADMIN_MOBILE_PROVIDER_LEGEND_TITLE=Geben Sie hier alle Daten des Handyanbieters ein.
-LINK_ADMIN_LIST_MOBILE_PROVIDER=Handyanbieter auflisten
-TABLE_SUMMARY_ADMIN_LIST_MOBILE_PROVIDERS=Listet alle bereits angelegten Handyanbieter auf.
+ADMIN_LINK_LIST_MOBILE_PROVIDER=Handyanbieter auflisten
+TABLE_SUMMARY_ADMIN_LIST_MOBILE_PROVIDERS=Diese Tabelle listet alle bereits angelegten Handyanbieter auf.
 ADMIN_ENTER_MOBILE_PROVIDER_DIAL_PREFIX=Vorwahl des Anbieters (keine f\u00fchrende Null):
 ADMIN_ENTER_MOBILE_PROVIDER_PATTERN=Textmuster f\u00fcr Mails:
 ADMIN_ENTER_MOBILE_PROVIDER_NAME=Name des Anbieters:
@@ -337,7 +337,7 @@ PAGE_TITLE_ADMIN_SHOW_USER=Benutzerprofil anzeigen
 CONTENT_TITLE_ADMIN_SHOW_USER=Profil eines Benutzers anzeigen:
 ERROR_PARAMETER_USER_ID_NOT_SET=Fehler: Benutzer-Id nicht gesetzt (Parameter: userId).
 ERROR_USER_NOT_FOUND=Fehler: Benutzereintrag nicht gefunden.
-ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=Zeigt ein Benutzerprofil f\u00fcr administrative Zwecke an.
+ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=Diese Tabelle zeigt ein Benutzerprofil f\u00fcr administrative Zwecke an.
 ADMIN_HEADER_SHOW_USER=Benutzer {0} (Nummer {1}):
 ADMIN_USER_ID=Benutzer-Id:
 ADMIN_USER_NAME=Benutzername:
@@ -349,7 +349,7 @@ ADMIN_USER_LAST_LOCKED=Zuletzt gesperrt:
 ADMIN_USER_LAST_LOCKED_REASON=Letzter Sperrgrund:
 ADMIN_CONTACT_IS_OWN_CONTACT=Eigenes Account:
 ADMIN_CONTACT_PERSONAL_TITLE=Anrede:
-ADMIN_CONTACT_ACADEMIC_TITLE=Titel:
+ADMIN_CONTACT_ACADEMIC_TITLE=Akademischer Titel:
 ADMIN_CONTACT_FIRST_NAME=Vorname:
 ADMIN_CONTACT_FAMILY_NAME=Nachname:
 ADMIN_CONTACT_STREET=Strasse:
@@ -418,8 +418,8 @@ CONTACT_IS_USER=Ist Benutzer
 ADMIN_CONTACT_USAGE=In Verwendung:
 ADMIN_LINK_SHOW_CONTACT_DATA_TITLE=Kontaktdaten anzeigen
 ADMIN_MENU_CONTACT_TITLE=Kontaktdaten
-LINK_ADMIN_LIST_CONTACT=Kontaktdaten auflisten
-LINK_ADMIN_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
+ADMIN_LINK_LIST_CONTACT=Kontaktdaten auflisten
+ADMIN_LINK_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
 ADMIN_ADD_CONTACT_MINIMUM_DATA=Bitte geben Sie mindestens Anrede, Vorname und Nachname an.
 ADMIN_HEADER_SHOW_CONTACT=Kontaktdaten f\u00fcr {0}:
 ADMIN_CONTACT_UPDATED=Kontaktdaten aktualisiert:
@@ -431,15 +431,15 @@ ADMIN_DELETE_CONTACT_TITLE=Kontaktdaten unwiederruflich l\u00f6schen
 BUTTON_ADMIN_DELETE_CONTACT=Kontaktdaten l\u00f6schen
 ADMIN_DELETE_CONTACT_NOTICE=Sie wollen Kontaktdaten l\u00f6schen. Diese k\u00f6nnten noch evtl. mit anderen Daten verkn\u00fcft sein, was zu Fehlern f\u00fchrt. Bitte l\u00f6schen Sie nur, wenn Sie sich absolut sicher sind, dass keine fremden Daten auf diesen Datensatz mehr verweisen.
 ADMIN_CONTACT_PERSONAL_DATA_MINIMUM_NOTICE=Bitte geben Sie mindestens Anrede, Vor- und Nachnamen ein.
-LINK_ADMIN_LIST_CONTACT=Kontaktdaten auflisten
-LINK_ADMIN_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
+ADMIN_LINK_LIST_CONTACT=Kontaktdaten auflisten
+ADMIN_LINK_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
 CONTACT_IS_USER=Ist Benutzer
 GUEST_AGREE_READ_PRIVACY_STATEMENT_1=Ja, ich habe die
 GUEST_AGREE_READ_PRIVACY_STATEMENT_2=gelesen und auch verstanden und nehme sie hiermit an.
 GUEST_AGREE_READ_TERMS_CONDITIONS_1=Ja, ich habe die
 GUEST_AGREE_READ_TERMS_CONDITIONS_2=gelesen und verstanden und nehme sie hiermit an.
-LINK_GUEST_TERMS_CONDITIONS=Allgemeine Gesch\u00e4ftsbestimmungen
-LINK_GUEST_PRIVACY_STATEMENTS=Datenschutzbestimmungen
+GUEST_LINK_TERMS_CONDITIONS=Allgemeine Gesch\u00e4ftsbestimmungen
+GUEST_LINK_PRIVACY_STATEMENTS=Datenschutzbestimmungen
 ADMIN_ADD_OR_ENTER_CONTACT_DATA=... oder geben Sie die Kontaktdaten des Benutzers ein:
 ERROR_CONTACT_ID_NOT_FOUND=Fehler: Kontaktdaten nicht gefunden.
 GUEST_REGISTRATION_PAGE1_TITLE=Anmeldeseite 1
@@ -468,8 +468,8 @@ GUEST_CONFIRM_USER_ACCOUNT_DONE_TITLE=Vielen Dank f\u00fcr die Best\u00e4tigung
 GUEST_USER_CONFIRM_ACCOUNT_DONE=Hallo {0} {1} {2}. Sie haben soeben Ihren Account best\u00e4tigt. Es ist eine Mail mit weiteren Details an Sie unterwegs.
 BUTTON_GUEST_CONFIRM_USER_ACCOUNT=Account best\u00e4tigen
 ADMIN_MENU_CONTACT_TITLE=Kontaktdaten verwalten
-LINK_ADMIN_LIST_CONTACT=Kontaktdaten auflisten
-LINK_ADMIN_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
+ADMIN_LINK_LIST_CONTACT=Kontaktdaten auflisten
+ADMIN_LINK_LIST_CONTACT_TITLE=Listet alle Kontaktdaten auf, egal wo her sie angelegt wurden.
 ADMIN_CONTACT_COUNTRY_CODE=L\u00e4ndercode:
 ADMIN_CONTACT_MOBILE_NUMBER=Handynummer:
 ADMIN_CONTACT_LANDLINE_NUMBER=Telefonnummer:
@@ -480,8 +480,8 @@ ADMIN_EXPORT_CONTACTS_TITLE=Datenexport starten
 ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING=Bei sehr gro\u00dfen Datenmengen kann es eventuell zu Zeit\u00fcberschreitungen kommen. Daher sollten Sie besser seitenweise exportieren.
 BUTTON_ADMIN_EXPORT_CONTACTS_CSV=Alle Daten als CSV-Datei exportieren
 BUTTON_ADMIN_EXPORT_CONTACTS_XLS=Alle Daten als Excel-Datei exportieren
-LINK_ADMIN_EXPORT_CONTACT=Kontaktdaten exportieren
-LINK_ADMIN_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
+ADMIN_LINK_EXPORT_CONTACT=Kontaktdaten exportieren
+ADMIN_LINK_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
 PERSONAL_DATA_BIRTHDAY=Geburtsdatum (tt.mm.jjjj):
 DATE_PATTERN=dd.MM.yyyy
 ADMIN_EXPORT_CONTACT_ID=Kontaktdaten-Id
@@ -509,8 +509,8 @@ GUEST_CONTACT_DATA_CITY_REQUIRED=Bitte geben Sie Ihren Wohnort ein.
 GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED=Bitte geben Sie Ihr Geburtsdatum ein.
 FIELD_PERSONAL_TITLE_REQUIRED=Bitte w\u00e4hlen Sie eine Anrede aus.
 ADMIN_PERSONAL_DATA_TITLE=Titel:
-LINK_ADMIN_EXPORT_USER=Benutzerdaten exportieren
-LINK_ADMIN_EXPORT_USER_TITLE=Exportiert alle Benutzerdaten (und Kontaktdaten).
+ADMIN_LINK_EXPORT_USER=Benutzerdaten exportieren
+ADMIN_LINK_EXPORT_USER_TITLE=Exportiert alle Benutzerdaten (und Kontaktdaten).
 PAGE_TITLE_ADMIN_EXPORT_USER=Benutzerdaten exportieren
 CONTENT_TITLE_ADMIN_EXPORT_USER=Benutzerdaten exportieren:
 ADMIN_EXPORT_USER_ID=Benutzer-Id
@@ -518,8 +518,8 @@ ADMIN_EXPORT_USER_ACCOUNT_STATUS=Accountstatus
 ADMIN_EXPORT_USERS_TITLE=Export der Benutzerdaten starten:
 ADMIN_EXPORT_USERS_TIMEOUT_WARNING=Bei sehr gro\u00dfen Datenmengen kann es eventuell zu Zeit\u00fcberschreitungen kommen. Daher sollten Sie besser seitenweise exportieren.
 BUTTON_ADMIN_EXPORT_USERS_XLS=Benutzerdaten als Excel-Datei
-LINK_ADMIN_EXPORT_CONTACT=Daten exportieren
-LINK_ADMIN_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
+ADMIN_LINK_EXPORT_CONTACT=Daten exportieren
+ADMIN_LINK_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
 #@TODO Please fix German umlauts!
 ADMIN_CONTACT_LIST_EMPTY=Keine Kontaktdaten in Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
 #@TODO Please fix German umlauts!
@@ -529,8 +529,8 @@ PAGE_TITLE_USER_RESEND_DONE=Neuen Best\u00e4tigungslink verschickt
 CONTENT_TITLE_USER_RESEND_DONE=Neuen Best\u00e4tigungslink verschickt:
 GUEST_USER_RESEND_LINK_COMPLETED=Es ist ein neuer Best\u00e4tigungslink an Ihre Email-Adresse unterwegs. Bitte kontrollieren Sie Ihr Mail-Postfach.
 GUEST_USER_NO_ACCOUNT_YET_QUESTION=Noch kein Benutzerkonto?
-LINK_GUEST_USER_NO_ACCOUNT_YET_TITLE=Als Benutzer anmelden
-LINK_GUEST_USER_NO_ACCOUNT_YET=Einfach hier anmelden.
+GUEST_LINK_USER_NO_ACCOUNT_YET_TITLE=Als Benutzer anmelden
+GUEST_LINK_USER_NO_ACCOUNT_YET=Einfach hier anmelden.
 ERROR_GUEST_REGISTRATION_DISABLED=Fehler: Die Anmeldung ist administrativ deaktiviert worden.
 ERROR_LOGIN_USER_EDIT_DATA_DISABLED=Fehler: Editieren von Benutzerdaten wurde administrativ deaktiviert.
 LINK_USER_LOGOUT=Ausloggen
@@ -572,8 +572,8 @@ ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET=Fehler: Instanz 'mobile' in Bean-Helper
 CONTENT_TITLE_ADMIN_LIST_CONTACT_MOBILE_NUMBER=Mobiltelefonnummern auflisten:
 ADMIN_LIST_MOBILE_EMPTY=Es sind keine Mobilfunknummern gespeichert.
 ADMIN_MENU_PHONE_NUMBERS_TITLE=Telefonnummern:
-LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS=Handynummern ...
-LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS_TITLE=Alle Mobilfunknummern auflisten.
+ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS=Handynummern ...
+ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS_TITLE=Alle Mobilfunknummern auflisten.
 ADMIN_SHOW_PHONE_CREATED=Telefoneintrag erstellt:
 ADMIN_SHOW_PHONE_UPDATED=Telefoneintrag zuletzt ge\u00e4ndert:
 ADMIN_EDIT_MOBILE_NUMBER_TITLE=Mobiltelefoneintrag {0} editieren:
@@ -617,10 +617,10 @@ ADMIN_SELECT_MOBILE_NUMBER=Mobilfunknummer ausw\u00e4hlen:
 BUTTON_ADMIN_LINK_ADD_CONTACT_MOBILE_NUMBER=Mobilfunknummer zum Kontakt hinzuf\u00fcgen
 ADMIN_OR_ENTER_CONTACT_NEW_MOBILE_DATA=... oder neue Mobilfunknummer eingeben:
 ERROR_USER_EMAIL_ADDRESS_NOT_FOUND=Die eingegebene Email-Addresse konnte nicht gefunden werden.
-LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS=Festnetznummern ...
-LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS_TITLE=Listet alle Festnetznummern auf.
-LINK_ADMIN_LIST_FAX_PHONE_NUMBERS=Faxnummern ...
-LINK_ADMIN_LIST_FAX_PHONE_NUMBERS_TITLE=Listet alle Faxnummern auf.
+ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS=Festnetznummern ...
+ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS_TITLE=Listet alle Festnetznummern auf.
+ADMIN_LINK_LIST_FAX_PHONE_NUMBERS=Faxnummern ...
+ADMIN_LINK_LIST_FAX_PHONE_NUMBERS_TITLE=Listet alle Faxnummern auf.
 ADMIN_LIST_FAX_NUMBER_EMPTY=Es sind keine Faxnummern gelistet.
 PAGE_TITLE_ADMIN_LIST_CONTACT_FAX_NUMBER=Faxnummern auflisten
 CONTENT_TITLE_ADMIN_LIST_CONTACT_FAX_NUMBER=Faxnummern auflisten:
@@ -776,16 +776,16 @@ GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Bitte geben Sie ein Passwort ein. Dies m
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Bitte wiederholen Sie das eingegebene Passwort. Dies wird zur Bestaetigung benoetigt.
 PAGE_TITLE_ADMIN_AREA=Administration
 #@TODO Please fix German umlauts!
-ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Geschaeftliche Kontakte
-LINK_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
-LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Listet Stammdaten auf
+ADMIN_MENU_BASIC_COMPANY_DATA_TITLE=Geschaeftliche Kontakte
+ADMIN_LINK_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
+ADMIN_LINK_LIST_BASIC_COMPANY_DATA_TITLE=Listet Stammdaten auf
 PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
 #@TODO Please fix German umlauts!
 CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Auflisten von Stammdaten
 #@TODO Please fix German umlauts!
 ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=Es befinden sich keine Stammdaten in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
 #@TODO Please fix German umlauts!
-TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=Tabelle listet Stammdaten auf.
+TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=Diese Tabelle listet Stammdaten auf.
 ADMIN_BASIC_COMPANY_DATA_ID=Id-Nummer:
 #@TODO Please fix German umlauts!
 ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Stammdaten des Unternehmens anzeigen.
@@ -818,7 +818,7 @@ ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED=Bitte geben Sie den Firmennamen i
 ADMIN_BASIC_COMPANY_DATA_COMPANY_LEGAL_STATUS=Rechtsform (z.B. GmbH):
 ADMIN_BASIC_COMPANY_DATA_COMPANY_EMAIL_ADDRESS=Haupt-Email-Adresse:
 #@TODO Please fix German umlauts!
-BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON=Basisdaten hinzufuegen
+BUTTON_ADMIN_ADD_BASIC_COMPANY_DATA=Basisdaten hinzufuegen
 ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED=Fehler: Falscher Aufruf der Anmeldeseite, da die Eingangsseite als Anmeldeseite fungiert.
 #@TODO Please fix German umlauts!
 BUTTON_CHANGE_LOCALE=Aendern
@@ -848,15 +848,15 @@ ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Weisst diesem Firmene
 ADMIN_BASIC_COMPANY_DATA_CREATED=Eintrag erstellt
 ADMIN_USER_NAME_IS_REQUIRED=Bitte vergeben Sie einen Benutzernamen. Dieser muss unique sein.
 NO_WEBSITE_URL_ENTERED=Keine URL eingegeben
-LINK_ADMIN_LIST_BRANCH_OFFICES=Filialen auflisten
+ADMIN_LINK_LIST_BRANCH_OFFICES=Filialen auflisten
 ADMIN_ENTER_DATA_STORE=Etage eingeben:
 ADMIN_ENTER_DATA_SUITE_NUMBER=Appartmentnummer eingeben:
-ADMIN_SELECT_BRANCH_OFFICE_USER_OWNER=Filiale einem Benutzer zuweisen:
-ADMIN_SELECT_BRANCH_OFFICE_CONTACT_EMPLOYEE=Kontaktperson der Filiale zuweisen:
+ADMIN_ASSIGN_BRANCH_OFFICE_USER_OWNER=Benutzer einer Filiale zuweisen:
+ADMIN_ASSIGN_BRANCH_OFFICE_CONTACT_EMPLOYEE=Kontaktperson der Filiale zuweisen:
 ADMIN_BRANCH_OFFICE_LEGEND=Grunddaten der Filiale:
 #@TODO Please fix German umlauts!
 ADMIN_BRANCH_OFFICE_LEGEND_TITLE=Geben Sie hier die Grunddaten der Filiale ein.
-ADMIN_SELECT_BRANCH_OFFICE_COMPANY=Filiale einem Unternehmen zuweisen:
+ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY=Filiale einem Unternehmen zuweisen:
 PAGE_TITLE_ADMIN_LIST_BRANCH_OFFICES=Filialen auflisten
 CONTENT_TITLE_ADMIN_LIST_BRANCH_OFFICES=Auflisten von Filialen:
 #@TODO Please fix German umlauts!
@@ -944,7 +944,7 @@ ADMIN_LIST_MOBILE_PROVIDERS_HEADER=Liste aller Mobilfunkanbieter
 SELECT_SHOWN_COLUMNS=Angezeigte Spalten
 ADMIN_LIST_BRANCH_OFFICES_HEADER=Alle Filialen auflisten
 LABEL_USERS=Benutzer
-FILTER_BY_MULTIPLE_USER_TITLE=Liste durch Auswahl von ein oder mehr Benutzern durchsuchen.
+FILTER_BY_MULTIPLE_USERS_TITLE=Liste durch Auswahl von ein oder mehr Benutzern durchsuchen.
 LABEL_COMPANIES=Firmen
 FILTER_BY_MULTIPLE_COMPANIES_TITLE=Liste durch Auswahl von ein oder mehr Unternehmen durchsuchen.
 LABEL_COMPANY_EMPLOYEES=Mitarbeiter
@@ -965,3 +965,28 @@ PAYMENT_TYPE_INVOICE=Auf Rechnung
 ADMIN_SELECT_SELLER_EMPLOYEE=Verkaeufer auswaehlen:
 #@TODO Please fix German umlauts!
 LOGIN_SELECT_SELLER_EMPLOYEE=Bitte waehlen Sie einen Verkaeufer aus:
+ADMIN_LINK_SHOW_COMPANY_EMPLOYEE_TITLE=Zeigt Daten eines Mitarbeiters an.
+TABLE_SUMMARY_ADMIN_LIST_COMPANY_EMPLOYEES=Diese Tabelle listet alle Mitarbeiter auf.
+#@TODO Please fix German umlauts!
+ADMIN_COMPANY_EMPLOYEES_LIST_EMPTY=Es wurden keine Mitarbeiter in der Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_LIST_COMPANY_EMPLOYEES_HEADER=Alle Mitarbeiter auflisten
+ADMIN_LINK_LIST_COMPANY_EMPLOYEE=Mitarbeiter auflisten
+ADMIN_LINK_LIST_COMPANY_EMPLOYEE_TITLE=Listet Mitarbeiter auf
+ADMIN_MENU_COMPANY_EMPLOYEE_TITLE=Mitarbeiter
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_COMPANY=Mitarbeiter einem Unternehmen zuweisen:
+#@TODO Please fix German umlauts!
+ADMIN_COMPANY_EMPLOYEE_COMPANY_REQUIRED=Sie muessen den Mitarbeiter einem Unternehmen zuweisen.
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_BRANCH_OFFICE=Filiale einem Mitarbeiter zuweisen:
+#@TODO Please fix German umlauts!
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_PERSONAL_DATA=Persoenliche Kontaktdaten dem Mitarbeiter zuweisen:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_USER_OWNER=Benutzeraccount dem Mitarbeiter zuweisen:
+ADMIN_ENTER_COMPANY_EMPLOYEE_EMAIL_ADDRESS=Gesch\u00e4ftl. Email-Adresse eingeben:
+ADMIN_ENTER_COMPANY_EMPLOYEE_STAFF_NUMBER=Mitarbeiternummer eingeben:
+ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND=Weitere Daten des Mitarbeiters:
+ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND_TITLE=Geben Sie hier weitere Daten des Mitarbeiters ein. Diese sind alle optional.
+ADMIN_ENTER_PHONE_EXTENSION=Durchwahl eingeben:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_DEPARTMENT=Abteilung einem Mitarbeiter zuweisen:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_HEADQUARTERS=Hauptsitz einem Mitarbeiter zuweisen:
+ADMIN_ENTER_COMPANY_EMPLOYEE_MOBILE_NUMBER=Geschaefliche Mobilfunknummer des Mitarbeiters eingeben:
+ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND=Allgemeine Daten des Mitarbeiters:
+ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND_TITLE=Geben Sie hier die generellen Daten des Mitarbeiters an.
diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties
index d6d65f44..43612bea 100644
--- a/src/java/org/mxchange/localization/bundle_en_US.properties
+++ b/src/java/org/mxchange/localization/bundle_en_US.properties
@@ -32,17 +32,17 @@ GUEST_ENTER_USER_LOGIN_DATA_TITLE=Please enter your user name and password:
 GUEST_ENTER_USER_LOGIN_DATA_LEGEND_TITLE=Please enter your assigned user name and password.
 GUEST_ENTER_USER_LOGIN_DATA_LEGEND=Please enter your login data:
 ENTER_PASSWORD=Password:
-LINK_GUEST_HOME_TITLE=Go to home page
-LINK_GUEST_HOME=Home
+GUEST_LINK_HOME_TITLE=Go to home page
+GUEST_LINK_HOME=Home
 LINK_CLOSE_SESSION_TITLE=Invalidate all session data
 LINK_CLOSE_SESSION=Invalidate session
 MENU_HOME_TITLE=Home
-LINK_GUEST_LOGIN_TITLE=Login for existing users
-LINK_GUEST_LOGIN=Login
-LINK_GUEST_REGISTER_TITLE=Registration for new user
-LINK_GUEST_REGISTER=Registration
-LINK_GUEST_PASSWORD_TITLE=Create new password
-LINK_GUEST_PASSWORD=Lost password?
+GUEST_LOGIN_LINK_TITLE=Login for existing users
+GUEST_LINK_LOGIN=Login
+GUEST_LINK_REGISTER_TITLE=Registration for new user
+GUEST_LINK_REGISTER=Registration
+GUEST_LINK_PASSWORD_TITLE=Create new password
+GUEST_LINK_PASSWORD=Lost password?
 PAGE_TITLE_INDEX_IMPRINT=Imprint
 CONTENT_TITLE_INDEX_IMPRINT=Imprint:
 GUEST_REGISTRATION_TITLE=Register a new user account
@@ -87,43 +87,43 @@ PAGE_TITLE_INDEX_PRIVACY=Privacy
 CONTENT_TITLE_INDEX_PRIVACY=Privacy:
 ADMIN_MENU_MAIN_TITLE=Main
 ADMIN_MENU_LOGOUT_TITLE=Logout
-LINK_ADMIN_INDEX_TITLE=To welcome page
-LINK_ADMIN_LOGOUT_TITLE=Logout from admin area
-LINK_ADMIN_TO_WEBPAGE_TITLE=Go to website but stay logged-in
-LINK_ADMIN_INDEX=Home
-LINK_ADMIN_LOGOUT=Logout
-LINK_ADMIN_TO_WEBPAGE=Call website
-LINK_ADMIN_FOOTER_TO_WEBPAGE=To website
-LINK_GUEST_IMPRINT=Imprint
-LINK_GUEST_TERMS=T&C
-LINK_GUEST_PRIVACY=Privacy
-LINK_GUEST_IMPRINT_TITLE=Go to imprint page
-LINK_GUEST_TERMS_TITLE=View terms & conditions
-LINK_GUEST_PRIVACY_TITLE=View privacy statement
+ADMIN_LINK_INDEX_TITLE=To welcome page
+ADMIN_LINK_LOGOUT_TITLE=Logout from admin area
+ADMIN_LINK_TO_WEBPAGE_TITLE=Go to website but stay logged-in
+ADMIN_LINK_INDEX=Home
+ADMIN_LINK_LOGOUT=Logout
+ADMIN_LINK_TO_WEBPAGE=Call website
+ADMIN_LINK_FOOTER_TO_WEBPAGE=To website
+GUEST_LINK_IMPRINT=Imprint
+GUEST_LINK_TERMS=T&C
+GUEST_LINK_PRIVACY=Privacy
+GUEST_LINK_IMPRINT_TITLE=Go to imprint page
+GUEST_LINK_TERMS_TITLE=View terms & conditions
+GUEST_LINK_PRIVACY_TITLE=View privacy statement
 MENU_USER_TITLE=User
 ENTER_USER_NAME=User name:
 BUTTON_USER_LOGIN=Login
 BUTTON_CONTINUE_STEP_2=Continue to step 2
 GUEST_REGISTRATION_ENTER_USER_NAME=Enter user name:
 GUEST_REGISTRATION_USER_NAME_NOTICE=The user name must only exist once.
-LINK_GUEST_RESENT_CONFIRMATION_LINK=Resend again the confirmation link?
+GUEST_LINK_RESENT_CONFIRMATION_LINK=Resend again the confirmation link?
 GUEST_USER_REGISTRATION_COMPLETED=The registration is completed and your account is pending confirmation. An email has been sent to you. There you will find a confirmation link which you have to click once or copy it into your browser's address bar and call it.
 PERSONAL_DATA_COUNTRY_CODE=Country code:
 PAGE_TITLE_USER_REGISTER_DONE=Registration completed
 CONTENT_TITLE_USER_REGISTER_DONE=Registration is completed:
 PAGE_TITLE_INDEX_RESEND_LINK=Resend confirmation link
 CONTENT_TITLE_INDEX_RESEND_LINK=Request confirmation link:
-LINK_GUEST_RESEND_LINK=Confirmation link
-LINK_GUEST_RESEND_LINK_TITLE=Resend confirmation link
-LINK_LOGIN_HOME_TITLE=To overview page
-LINK_LOGIN_HOME=Overview
+GUEST_LINK_RESEND_LINK=Confirmation link
+GUEST_LINK_RESEND_LINK_TITLE=Resend confirmation link
+LOGIN_LINK_HOME_TITLE=To overview page
+LOGIN_LINK_HOME=Overview
 MENU_LOGOUT_TITLE=Logout
 CLICK_HERE=here
 GUEST_ALREADY_USER_CONTINUE_LOGIN_1=Already registered? Then click
 GUEST_ALREADY_USER_CONTINUE_LOGIN_2=to login.
 PAGE_TITLE_USER_LOGIN_HOME=Welcome to user area
 CONTENT_TITLE_USER_LOGIN_HOME=Overview of your applications:
-LINK_LOGIN_LOGOUT=Logout
+LOGIN_LINK_LOGOUT=Logout
 PAGE_TITLE_LOGIN_AREA=User area
 COUNTRY_GERMANY=Germany
 COUNTRY_PHILIPPINES=Philippines
@@ -163,18 +163,18 @@ LOGIN_NO_PASSWORD_MESSAGE=You have entered no password.
 LOGIN_NO_USER_NAME_MESSAGE=You have entered no user name.
 USER_NOT_LOGGED_IN=You are not signed in.
 LOGIN_OWN_PROFILE_INVISIBLE=Your profile is set to "invisible".
-LINK_GUEST_LOGIN_LOST_PASSWORD=Forgot your password?
+GUEST_LINK_USER_LOST_PASSWORD=Forgot your password?
 LINK_TITLE_GUEST_LOGIN_LOST_PASSWORD=Restore your password
 TABLE_HEADER_ERROR_USER_NOT_LOGGED_IN=You need to be logged-in
 USER_IS_NOT_LOGGED_IN_FULL=To use this feature you need to register and be logged-in into your account.
 LOGIN_EDIT_USER_DATA_TITLE=What do you want to change?
 LOGIN_CHOOSE_PERSONAL_DATA_EMAIL_PASSWORD_NOTICE=You can change your personal data, your email address and your password for login here.
-LINK_LOGIN_CHANGE_PERSONAL_DATA=Change personal data such as your address.
-LINK_LOGIN_CHANGE_PERSONAL_DATA_TITLE=Change your personal data like address, phone number and so on.
-LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS=Change your email address
-LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS_TITLE=Change your email address. This requires another confirmation and can be undone.
-LINK_LOGIN_CHANGE_PASSWORD=Change your password
-LINK_LOGIN_CHANGE_PASSWORD_TITLE=Change here your password, if you want another one.
+LOGIN_LINK_CHANGE_PERSONAL_DATA=Change personal data such as your address.
+LOGIN_LINK_CHANGE_PERSONAL_DATA_TITLE=Change your personal data like address, phone number and so on.
+LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS=Change your email address
+LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS_TITLE=Change your email address. This requires another confirmation and can be undone.
+LOGIN_LINK_CHANGE_PASSWORD=Change your password
+LOGIN_LINK_CHANGE_PASSWORD_TITLE=Change here your password, if you want another one.
 LOGIN_ENTER_CURRENT_PASSWORD_CONFIRMATION_LEGEND=Your current password for confirmation:
 LOGIN_ENTER_CURRENT_PASSWORD_CONFIRMATION_LEGEND_TITLE=Please enter your current password for confirmation of the change.
 LOGIN_ENTER_CURRENT_PASSWORD_CONFIRM=Current password:
@@ -203,14 +203,14 @@ EN_US=English (US)
 CONTENT_PAGE_INDEX_PARA1=Text for 1st paragraph.
 CONTENT_PAGE_INDEX_PARA2=Text for 2nd paragraph.
 CONTENT_PAGE_INDEX_PARA3=Text for 3rd paragraph.
-LINK_ADMIN_LIST_USER=List user accounts
-LINK_ADMIN_LIST_USER_TITLE=List all existing user accounts.
-LINK_ADMIN_EDIT_USER=Edit user account
-LINK_ADMIN_EDIT_USER_TITLE=Change here your user's accounts.
-LINK_ADMIN_DELETE_USER=Delete user account
-LINK_ADMIN_DELETE_USER_TITLE=Here you can delete existing user accounts.
-LINK_ADMIN_UNLOCK_USER=Un-/Lock user accounts
-LINK_ADMIN_UNLOCK_USER_TITLE=Lock or unlock here user accounts.
+ADMIN_LINK_LIST_USER=List user accounts
+ADMIN_LINK_LIST_USER_TITLE=List all existing user accounts.
+ADMIN_LINK_EDIT_USER=Edit user account
+ADMIN_LINK_EDIT_USER_TITLE=Change here your user's accounts.
+ADMIN_LINK_DELETE_USER=Delete user account
+ADMIN_LINK_DELETE_USER_TITLE=Here you can delete existing user accounts.
+ADMIN_LINK_UNLOCK_USER=Un-/Lock user accounts
+ADMIN_LINK_UNLOCK_USER_TITLE=Lock or unlock here user accounts.
 PAGE_TITLE_ADMIN_LIST_USER=List user accounts
 CONTENT_TITLE_ADMIN_LIST_USER=List user accounts:
 PAGE_TITLE_ADMIN_EDIT_USER=Edit user accounts
@@ -245,8 +245,8 @@ ADMIN_USER_DATA_PASSWORD_ADD_NOTICE=Keep both password fields empty to create a
 ADMIN_CONTACT_DATA_EMAIL_ADDRESS_NOTICE=The email address must be unique.
 BUTTON_ADMIN_ADD_USER=Add new user account
 ADMIN_MENU_COUNTRY_TITLE=Country data
-LINK_ADMIN_LIST_COUNTRIES=List countries
-LINK_ADMIN_LIST_COUNTRIES_TITLE=List existing countries, add new country, edit and delete.
+ADMIN_LINK_LIST_COUNTRIES=List countries
+ADMIN_LINK_LIST_COUNTRIES_TITLE=List existing countries, add new country, edit and delete.
 PAGE_TITLE_ADMIN_LIST_COUNTRY=Manage country data
 CONTENT_TITLE_ADMIN_LIST_COUNTRY=Manage country data:
 ADMIN_ADD_COUNTRY_TITLE=Add new country
@@ -272,8 +272,8 @@ ADMIN_LINK_EDIT_DELETE_COUNTRY_TITLE=Edit or delete country
 TABLE_SUMMARY_ADMIN_LIST_COUNTRIES=List of all already added countries.
 COUNTRY_GERMANY=Germany
 ADMIN_MENU_MOBILE_PROVIDER_TITLE=Mobile providers
-LINK_ADMIN_LIST_MOBILE_PROVIDER=List mobile provider
-LINK_ADMIN_LIST_MOBILE_PROVIDER_TITLE=Add, list, edit and delete mobile providers.
+ADMIN_LINK_LIST_MOBILE_PROVIDER=List mobile provider
+ADMIN_LINK_LIST_MOBILE_PROVIDER_TITLE=Add, list, edit and delete mobile providers.
 PAGE_TITLE_ADMIN_MOBILE_PROVIDER_LIST=Manage mobile providers
 CONTENT_TITLE_ADMIN_MOBILE_PROVIDER_LIST=Manage mobile providers:
 PAGE_TITLE_ADMIN_MOBILE_PROVIDER_EDIT=Edit mobile provider
@@ -316,7 +316,7 @@ PAGE_TITLE_ADMIN_SHOW_USER=Show user profile
 CONTENT_TITLE_ADMIN_SHOW_USER=Show profile of a user:
 ERROR_PARAMETER_USER_ID_NOT_SET=Error: User id not set (parameter userId).
 ERROR_USER_NOT_FOUND=Error: User entry not found.
-ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=Shows a single user profile for administrative purposes.
+ADMIN_TABLE_SUMMARY_SHOW_USER_DATA=This table shows a single user profile for administrative purposes.
 ADMIN_HEADER_SHOW_USER=User {0} (id {1}):
 ADMIN_USER_ID=User id:
 ADMIN_USER_NAME=User name:
@@ -328,7 +328,7 @@ ADMIN_USER_LAST_LOCKED=Last locked:
 ADMIN_USER_LAST_LOCKED_REASON=Last lock reason:
 ADMIN_CONTACT_IS_OWN_CONTACT=Own account:
 ADMIN_CONTACT_PERSONAL_TITLE=Gender:
-ADMIN_CONTACT_ACADEMIC_TITLE=Title:
+ADMIN_CONTACT_ACADEMIC_TITLE=Academic title:
 ADMIN_CONTACT_FIRST_NAME=First name:
 ADMIN_CONTACT_FAMILY_NAME=Family name:
 ADMIN_CONTACT_STREET=Street:
@@ -396,8 +396,8 @@ CONTACT_IS_USER=Is a user
 ADMIN_CONTACT_USAGE=Usage:
 ADMIN_LINK_SHOW_CONTACT_DATA_TITLE=Show contact data
 ADMIN_MENU_CONTACT_TITLE=Manage contact data
-LINK_ADMIN_LIST_CONTACT=List contact data
-LINK_ADMIN_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
+ADMIN_LINK_LIST_CONTACT=List contact data
+ADMIN_LINK_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
 ADMIN_ADD_CONTACT_MINIMUM_DATA=Please enter at least salutation, first name and family name.
 ADMIN_HEADER_SHOW_CONTACT=Contact data for {0}:
 ADMIN_CONTACT_UPDATED=Contact data updated:
@@ -409,15 +409,15 @@ ADMIN_DELETE_CONTACT_TITLE=Delete contact data unreverseable
 BUTTON_ADMIN_DELETE_CONTACT=Delete contact data
 ADMIN_DELETE_CONTACT_NOTICE=You want to delete contact data. This data could be still linked with other data which could lead to errors. Please delete only, if you are sure that no foreign data links to this record.
 ADMIN_CONTACT_PERSONAL_DATA_MINIMUM_NOTICE=Please enter at least title, first name and family name.
-LINK_ADMIN_LIST_CONTACT=List contact data
-LINK_ADMIN_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
+ADMIN_LINK_LIST_CONTACT=List contact data
+ADMIN_LINK_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
 CONTACT_IS_USER=Is a user
 GUEST_AGREE_READ_PRIVACY_STATEMENT_1=Yes, I have read and understand the
 GUEST_AGREE_READ_PRIVACY_STATEMENT_2=and I accept them with this.
 GUEST_AGREE_READ_TERMS_CONDITIONS_1=Yes, I have read and understand the
 GUEST_AGREE_READ_TERMS_CONDITIONS_2=and I accept them with this.
-LINK_GUEST_TERMS_CONDITIONS=Terms & Conditions
-LINK_GUEST_PRIVACY_STATEMENTS=privacy statements
+GUEST_LINK_TERMS_CONDITIONS=Terms & Conditions
+GUEST_LINK_PRIVACY_STATEMENTS=privacy statements
 ADMIN_ADD_OR_ENTER_CONTACT_DATA=... or enter the user's contact data:
 ERROR_CONTACT_ID_NOT_FOUND=Error: contact data not found
 GUEST_REGISTRATION_PAGE1_TITLE=Registration page 1
@@ -443,10 +443,9 @@ LOGIN_ENTER_CURRENT_PASSWORD_CONFIRMATION_LEGEND_TITLE=Please enter your current
 LOGIN_EDIT_USER_DATA_TITLE=What do you want to change?
 LOGIN_CHOOSE_PERSONAL_DATA_EMAIL_PASSWORD_NOTICE=You can change your personal data, your email address and your password for login here.
 BUTTON_CHANGE_PERSONAL_DATA=Change personal data
-LINK_LOGIN_CHANGE_PERSONAL_DATA_TITLE=Change your personal data like address, phone number and so on.
-LINK_LOGIN_CHANGE_PASSWORD=Change your password
-LINK_LOGIN_CHANGE_PERSONAL_DATA=Change personal data such as your address.
-LINK_GUEST_LOGIN_LOST_PASSWORD=Forgot your password?
+LOGIN_LINK_CHANGE_PERSONAL_DATA_TITLE=Change your personal data like address, phone number and so on.
+LOGIN_LINK_CHANGE_PASSWORD=Change your password
+LOGIN_LINK_CHANGE_PERSONAL_DATA=Change personal data such as your address.
 SELECTION_NOTICE_USER_PROFILE_MODE_INVISIBLE=If you choose "Invisible", nobody can share address books with you.
 SELECTION_NOTICE_USER_PROFILE_MODE_MEMBERS=If you choose "Only members", other users can start sharing address books with you.
 SELECTION_NOTICE_USER_PROFILE_MODE_PUBLIC=If you choose "All" the whole Internet can view your profile, including bots.
@@ -461,8 +460,8 @@ GUEST_CONFIRM_USER_ACCOUNT_DONE_TITLE=Thank you for confirmation of your account
 GUEST_USER_CONFIRM_ACCOUNT_DONE=Hello {0} {1} {2}. You have successfully confirmed your account. An email with more details is on it's way to you.
 BUTTON_GUEST_CONFIRM_USER_ACCOUNT=Confirm account
 ADMIN_MENU_CONTACT_TITLE=Manage contact data
-LINK_ADMIN_LIST_CONTACT=List contact data
-LINK_ADMIN_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
+ADMIN_LINK_LIST_CONTACT=List contact data
+ADMIN_LINK_LIST_CONTACT_TITLE=Lists all contact data regardless where they was created.
 ADMIN_CONTACT_COUNTRY_CODE=Country code:
 ADMIN_CONTACT_MOBILE_NUMBER=Mobile number:
 ADMIN_CONTACT_LANDLINE_NUMBER=Phone number:
@@ -473,8 +472,8 @@ ADMIN_EXPORT_CONTACTS_TITLE=Start data export
 ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING=Big data amount may lead to timeouts. You should then try to export each page separately.
 BUTTON_ADMIN_EXPORT_CONTACTS_CSV=Export all data as CSV file
 BUTTON_ADMIN_EXPORT_CONTACTS_XLS=Export all data as Excel file
-LINK_ADMIN_EXPORT_CONTACT=Export data
-LINK_ADMIN_EXPORT_CONTACT_TITLE=Export contact data
+ADMIN_LINK_EXPORT_CONTACT=Export data
+ADMIN_LINK_EXPORT_CONTACT_TITLE=Export contact data
 PERSONAL_DATA_BIRTHDAY=Birthday (mm-dd-yyyy):
 DATE_PATTERN=MM-dd-yyyy
 ADMIN_EXPORT_CONTACT_ID=Contact data id
@@ -502,8 +501,8 @@ GUEST_CONTACT_DATA_CITY_REQUIRED=Please enter your city.
 GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED=Please enter your birthday.
 FIELD_PERSONAL_TITLE_REQUIRED=Please select a salutation.
 ADMIN_PERSONAL_DATA_TITLE=Title:
-LINK_ADMIN_EXPORT_USER=Export user data
-LINK_ADMIN_EXPORT_USER_TITLE=Exports all user and contact data.
+ADMIN_LINK_EXPORT_USER=Export user data
+ADMIN_LINK_EXPORT_USER_TITLE=Exports all user and contact data.
 PAGE_TITLE_ADMIN_EXPORT_USER=Export user data
 CONTENT_TITLE_ADMIN_EXPORT_USER=Export user data:
 ADMIN_EXPORT_USER_ID=User id
@@ -513,14 +512,14 @@ ADMIN_EXPORT_USERS_TIMEOUT_WARNING=Big data amount may lead to timeouts. You sho
 BUTTON_ADMIN_EXPORT_USERS_XLS=User data as Excel file
 ADMIN_EXPORT_CONTACTS_TIMEOUT_WARNING=Big data amount may lead to timeouts. You should then try to export each page separately.
 BUTTON_ADMIN_EXPORT_CONTACTS_CSV=Export all data as CSV file
-LINK_ADMIN_EXPORT_CONTACT=Export data
-LINK_ADMIN_EXPORT_CONTACT_TITLE=Export contact data
+ADMIN_LINK_EXPORT_CONTACT=Export data
+ADMIN_LINK_EXPORT_CONTACT_TITLE=Export contact data
 PAGE_TITLE_USER_RESEND_DONE=New confirmation link sent
 CONTENT_TITLE_USER_RESEND_DONE=New confirmation link sent:
 GUEST_USER_RESEND_LINK_COMPLETED=A new confirmation link has been sent out to your email address. Please check your email box.
 GUEST_USER_NO_ACCOUNT_YET_QUESTION=Not yet registered as user?
-LINK_GUEST_USER_NO_ACCOUNT_YET_TITLE=Register as a user
-LINK_GUEST_USER_NO_ACCOUNT_YET=Signup here quickly.
+GUEST_LINK_USER_NO_ACCOUNT_YET_TITLE=Register as a user
+GUEST_LINK_USER_NO_ACCOUNT_YET=Signup here quickly.
 ERROR_GUEST_REGISTRATION_DISABLED=Error: Registration has been administratively deactivated.
 ERROR_LOGIN_USER_EDIT_DATA_DISABLED=Error: Editing of user data has been disabled by administrators.
 LINK_USER_LOGOUT=Logout
@@ -562,8 +561,8 @@ ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET=Error: Instance 'mobile' in bean helper
 CONTENT_TITLE_ADMIN_LIST_CONTACT_MOBILE_NUMBER=List mobile phone numbers:
 ADMIN_LIST_MOBILE_EMPTY=No mobile numbers are saved.
 ADMIN_MENU_PHONE_NUMBERS_TITLE=Phone numbers:
-LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS=Mobile numbers ...
-LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS_TITLE=List all mobile numbers.
+ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS=Mobile numbers ...
+ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS_TITLE=List all mobile numbers.
 ADMIN_SHOW_PHONE_CREATED=Created:
 ADMIN_SHOW_PHONE_UPDATED=Last changed:
 ADMIN_EDIT_MOBILE_NUMBER_TITLE=Edit mobile entry {0}:
@@ -607,10 +606,10 @@ ADMIN_SELECT_MOBILE_NUMBER=Choose mobile number:
 BUTTON_ADMIN_LINK_ADD_CONTACT_MOBILE_NUMBER=Add mobile number to contact
 ADMIN_OR_ENTER_CONTACT_NEW_MOBILE_DATA=... or add new mobile number:
 ERROR_USER_EMAIL_ADDRESS_NOT_FOUND=Your entered email address could not befound.
-LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS=Land-line numbers ...
-LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS_TITLE=Lists all land-line numbers.
-LINK_ADMIN_LIST_FAX_PHONE_NUMBERS=Fax numbers ...
-LINK_ADMIN_LIST_FAX_PHONE_NUMBERS_TITLE=Lists all fax numbers.
+ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS=Land-line numbers ...
+ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS_TITLE=Lists all land-line numbers.
+ADMIN_LINK_LIST_FAX_PHONE_NUMBERS=Fax numbers ...
+ADMIN_LINK_LIST_FAX_PHONE_NUMBERS_TITLE=Lists all fax numbers.
 ADMIN_LIST_FAX_NUMBER_EMPTY=There are no fax numbers listed.
 PAGE_TITLE_ADMIN_LIST_CONTACT_FAX_NUMBER=List fax numbers
 CONTENT_TITLE_ADMIN_LIST_CONTACT_FAX_NUMBER=List fax numbers:
@@ -764,13 +763,13 @@ GUEST_REGISTRATION_USER_PASSWORDS_EMPTY_NOT_ALLOWED=You have to enter an own pas
 GUEST_REGISTRATION_PASSWORD_NOT_ENTERED=Please enter a password. This must match with security rules.
 GUEST_REGISTRATION_PASSWORD_REPEAT_NOT_ENTERED=Please repeat the entered password. This done to confirm the password.
 PAGE_TITLE_ADMIN_AREA=Administration
-ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Business contacts
-LINK_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
-LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Lists basic company data
+ADMIN_MENU_BASIC_COMPANY_DATA_TITLE=Business contacts
+ADMIN_LINK_LIST_BASIC_COMPANY_DATA=List basic company data
+ADMIN_LINK_LIST_BASIC_COMPANY_DATA_TITLE=Lists basic company data
 PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
 CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Lists basic company data
 ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in database. Or your search criteria doesn't match anything.
-TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=This table lists basic company data.
+TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=This table lists all basic company data.
 ADMIN_BASIC_COMPANY_DATA_ID=Id Number:
 ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Show details of this business contact.
 ADMIN_ASSIGNED_USER=Assigned user:
@@ -796,7 +795,7 @@ ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME=Company name:
 ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED=Please enter the company's name including legal status.
 ADMIN_BASIC_COMPANY_DATA_COMPANY_LEGAL_STATUS=Legal status (e.g. Inc.):
 ADMIN_BASIC_COMPANY_DATA_COMPANY_EMAIL_ADDRESS=Main email address:
-BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON=Add basic data
+BUTTON_ADMIN_ADD_BASIC_COMPANY_DATA=Add basic data
 #Fehler: Falscher Aufruf der Anmeldeseite, da die Eingangsseite als Anmeldeseite fungiert.
 ERROR_GUEST_REGISTRATION_IN_INDEX_ENABLED=Error: Wrong request on registration page as the index page serves as registration page.
 BUTTON_CHANGE_LOCALE=Change
@@ -817,14 +816,14 @@ ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Assigns a company fou
 ADMIN_BASIC_COMPANY_DATA_CREATED=Entry created
 ADMIN_USER_NAME_IS_REQUIRED=Please enter a user name. This must be unique.
 NO_WEBSITE_URL_ENTERED=No URL entered
-LINK_ADMIN_LIST_BRANCH_OFFICES=List branch offices
+ADMIN_LINK_LIST_BRANCH_OFFICES=List branch offices
 ADMIN_ENTER_DATA_STORE=Enter store:
 ADMIN_ENTER_DATA_SUITE_NUMBER=Enter suite number:
-ADMIN_SELECT_BRANCH_OFFICE_USER_OWNER=Assign branch office to user:
-ADMIN_SELECT_BRANCH_OFFICE_CONTACT_EMPLOYEE=Select contact person to branch office:
+ADMIN_ASSIGN_BRANCH_OFFICE_USER_OWNER=Assign user to branch office:
+ADMIN_ASSIGN_BRANCH_OFFICE_CONTACT_EMPLOYEE=Assign contact person to branch office:
 ADMIN_BRANCH_OFFICE_LEGEND=Branch office basic data:
 ADMIN_BRANCH_OFFICE_LEGEND_TITLE=Enter branch office basic data here.
-ADMIN_SELECT_BRANCH_OFFICE_COMPANY=Assign branch office to company:
+ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY=Assign branch office to company:
 PAGE_TITLE_ADMIN_LIST_BRANCH_OFFICES=List branch offices
 CONTENT_TITLE_ADMIN_LIST_BRANCH_OFFICES=List branch offices:
 ADMIN_BRANCH_OFFICES_LIST_EMPTY=There are no branch offices found in database. Or your search criteria doesn't match anything.
@@ -891,7 +890,7 @@ ADMIN_LIST_MOBILE_PROVIDERS_HEADER=List of all mobile providers
 SELECT_SHOWN_COLUMNS=Shown columns
 ADMIN_LIST_BRANCH_OFFICES_HEADER=List all branch offices
 LABEL_USERS=Users
-FILTER_BY_MULTIPLE_USER_TITLE=Filter list by selecting one or more users.
+FILTER_BY_MULTIPLE_USERS_TITLE=Filter list by selecting one or more users.
 LABEL_COMPANIES=Companies
 FILTER_BY_MULTIPLE_COMPANIES_TITLE=Filter list by selecting one or more companies.
 LABEL_COMPANY_EMPLOYEES=Employees
@@ -907,3 +906,25 @@ PAYMENT_TYPE_PREPAYMENT=Prepayment
 PAYMENT_TYPE_INVOICE=Per invoice
 ADMIN_SELECT_SELLER_EMPLOYEE=Choose seller:
 LOGIN_SELECT_SELLER_EMPLOYEE=Please choose a seller:
+ADMIN_LINK_SHOW_COMPANY_EMPLOYEE_TITLE=Shows data of an employee.
+TABLE_SUMMARY_ADMIN_LIST_COMPANY_EMPLOYEES=This table lists all company employees.
+ADMIN_COMPANY_EMPLOYEES_LIST_EMPTY=There are no company employees found in database. Or your search criteria doesn't match anything.
+ADMIN_LIST_COMPANY_EMPLOYEES_HEADER=List all company employees
+ADMIN_LINK_LIST_COMPANY_EMPLOYEE=List employees
+ADMIN_LINK_LIST_COMPANY_EMPLOYEE_TITLE=Lists company employees
+ADMIN_MENU_COMPANY_EMPLOYEE_TITLE=Employees
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_COMPANY=Assign employee to company:
+ADMIN_COMPANY_EMPLOYEE_COMPANY_REQUIRED=You have to assign a company to this employee.
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_BRANCH_OFFICE=Assign employee to branch office:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_PERSONAL_DATA=Assign personal data to employee:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_USER_OWNER=Assign user to employee:
+ADMIN_ENTER_COMPANY_EMPLOYEE_EMAIL_ADDRESS=Enter business email address:
+ADMIN_ENTER_COMPANY_EMPLOYEE_STAFF_NUMBER=Enter employee number:
+ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND=Other data of employee:
+ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND_TITLE=Here you can enter additional data for the employee. All fields are optional.
+ADMIN_ENTER_PHONE_EXTENSION=Enter phone extension:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_DEPARTMENT=Assign department to employee:
+ADMIN_ASSIGN_COMPANY_EMPLOYEE_HEADQUARTERS=Assign headquarters to employee:
+ADMIN_ENTER_COMPANY_EMPLOYEE_MOBILE_NUMBER=Enter business mobile number of employee:
+ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND=General data of employee:
+ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND_TITLE=You can enter here the general data of the employee.
diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml
index 4f5b89ec..3c20764a 100644
--- a/web/WEB-INF/faces-config.xml
+++ b/web/WEB-INF/faces-config.xml
@@ -113,8 +113,12 @@
 			<to-view-id>/admin/basic_company_data/admin_basic_company_data_list.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
-			<from-outcome>admin_list_branch_offices</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_offices_list.xhtml</to-view-id>
+			<from-outcome>admin_list_branch_office</from-outcome>
+			<to-view-id>/admin/branch_office/admin_branch_office_list.xhtml</to-view-id>
+		</navigation-case>
+		<navigation-case>
+			<from-outcome>admin_list_company_employee</from-outcome>
+			<to-view-id>/admin/employee/admin_employee_list.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_list_user</from-outcome>
@@ -758,18 +762,18 @@
 		</navigation-case>
 	</navigation-rule>
 	<navigation-rule>
-		<from-view-id>/admin/branch_offices/admin_branch_offices_list.xhtml</from-view-id>
+		<from-view-id>/admin/branch_office/admin_branch_office_list.xhtml</from-view-id>
 		<navigation-case>
 			<from-outcome>admin_show_branch_office</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_office_show.xhtml</to-view-id>
+			<to-view-id>/admin/branch_office/admin_branch_office_show.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_edit_branch_office</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_office_edit.xhtml</to-view-id>
+			<to-view-id>/admin/branch_office/admin_branch_office_edit.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_delete_branch_office</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_office_delete.xhtml</to-view-id>
+			<to-view-id>/admin/branch_office/admin_branch_office_delete.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_show_user</from-outcome>
@@ -777,7 +781,7 @@
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_assign_branch_office_owner</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_office_assign_owner.xhtml</to-view-id>
+			<to-view-id>/admin/branch_office/admin_branch_office_assign_owner.xhtml</to-view-id>
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_show_basic_data</from-outcome>
@@ -789,7 +793,22 @@
 		</navigation-case>
 		<navigation-case>
 			<from-outcome>admin_assign_branch_office_employee</from-outcome>
-			<to-view-id>/admin/branch_offices/admin_branch_office_assign_employee.xhtml</to-view-id>
+			<to-view-id>/admin/branch_office/admin_branch_office_assign_employee.xhtml</to-view-id>
+		</navigation-case>
+	</navigation-rule>
+	<navigation-rule>
+		<from-view-id>/admin/employee/admin_employee_list.xhtml</from-view-id>
+		<navigation-case>
+			<from-outcome>admin_show_employee</from-outcome>
+			<to-view-id>/admin/employee/admin_employee_show.xhtml</to-view-id>
+		</navigation-case>
+		<navigation-case>
+			<from-outcome>admin_edit_employee</from-outcome>
+			<to-view-id>/admin/employee/admin_employee_edit.xhtml</to-view-id>
+		</navigation-case>
+		<navigation-case>
+			<from-outcome>admin_delete_employee</from-outcome>
+			<to-view-id>/admin/employee/admin_employee_delete.xhtml</to-view-id>
 		</navigation-case>
 	</navigation-rule>
 	<!--
diff --git a/web/WEB-INF/links.jsf.taglib.xml b/web/WEB-INF/links.jsf.taglib.xml
index 0c395769..7a131f3d 100644
--- a/web/WEB-INF/links.jsf.taglib.xml
+++ b/web/WEB-INF/links.jsf.taglib.xml
@@ -193,6 +193,29 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 			<type>java.lang.Boolean</type>
 		</attribute>
 	</tag>
+	<tag>
+		<tag-name>outputCompanyEmployeeAdminMiniLinks</tag-name>
+		<description>This tag renders administrative "mini-links" for given employee instance.</description>
+		<source>resources/tags/admin/links/mini/employee/admin_employee_links.tpl</source>
+		<attribute>
+			<name>employee</name>
+			<description>The employee instance that provides the data for this tag.</description>
+			<required>true</required>
+			<type>org.mxchange.jcontactsbusiness.model.employee.Employee</type>
+		</attribute>
+		<attribute>
+			<name>renderShowLink</name>
+			<description>Whether to render (default: true) "show employee" link.</description>
+			<required>false</required>
+			<type>java.langBoolean</type>
+		</attribute>
+		<attribute>
+			<name>rendered</name>
+			<description>Whether this tag is being rendered by JSF engine (default: true).</description>
+			<required>false</required>
+			<type>java.lang.Boolean</type>
+		</attribute>
+	</tag>
 	<tag>
 		<tag-name>outputContactAdminMiniLinks</tag-name>
 		<description>This tag renders administrative "mini-links" for given contact instance.</description>
@@ -228,7 +251,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 		</attribute>
 		<attribute>
 			<name>renderShowLink</name>
-			<description>Whether to render (default: true) "show branch office" link.</description>
+			<description>Whether to render (default: true) "show country" link.</description>
 			<required>false</required>
 			<type>java.langBoolean</type>
 		</attribute>
diff --git a/web/WEB-INF/resources/tags/admin/form_data/contact/admin_form_contact_data.tpl b/web/WEB-INF/resources/tags/admin/form_data/contact/admin_form_contact_data.tpl
index 91554a84..61e35727 100644
--- a/web/WEB-INF/resources/tags/admin/form_data/contact/admin_form_contact_data.tpl
+++ b/web/WEB-INF/resources/tags/admin/form_data/contact/admin_form_contact_data.tpl
@@ -7,230 +7,78 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<h:panelGroup styleClass="para" layout="block" rendered="#{empty rendered or rendered}">
+	<p:row rendered="#{empty rendered or rendered}">
 		<fieldset class="fieldset">
 			<legend title="#{msg.ADMIN_CONTACT_PERSONAL_DATA_LEGEND_TITLE}">
 				<h:outputText value="#{msg.ADMIN_CONTACT_PERSONAL_DATA_LEGEND}" />
 			</legend>
 
-			<widgets:outputPersonalTitleTableRow targetController="#{adminContactController}" allowEmptyRequiredData="#{allowEmptyRequiredData}" />
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="firstName" value="#{msg.ADMIN_PERSONAL_DATA_FIRST_NAME}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="firstName" size="10" maxlength="255" value="#{adminContactController.firstName}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="firstName" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="title" value="#{msg.ADMIN_PERSONAL_DATA_TITLE}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="title" size="5" maxlength="255" value="#{adminContactController.academicTitle}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="title" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="familyName" value="#{msg.ADMIN_PERSONAL_DATA_FAMILY_NAME}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="familyName" size="10" maxlength="255" value="#{adminContactController.familyName}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="familyName" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="street" value="#{msg.ADMIN_DATA_STREET_NAME}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="street" size="20" maxlength="255" value="#{adminContactController.street}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="street" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="houseNumber" value="#{msg.ADMIN_DATA_HOUSE_NUMBER}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="houseNumber" size="3" maxlength="5" value="#{adminContactController.houseNumber}" validatorMessage="#{msg.ENTERED_HOUSE_NUMBER_INVALID}">
-						<f:validateLongRange for="houseNumber" minimum="1" maximum="500" />
-					</p:inputText>
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="houseNumber" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="houseNumberExtension" value="#{msg.ADMIN_DATA_HOUSE_NUMBER_EXTENSION}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="houseNumberExtension" size="2" maxlength="2" value="#{adminContactController.houseNumberExtension}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="houseNumberExtension" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="zipCode" value="#{msg.ADMIN_DATA_ZIP_CODE}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="zipCode" size="5" maxlength="6" value="#{adminContactController.zipCode}" validatorMessage="#{msg.ENTERED_ZIP_CODE_INVALID}">
-						<f:validateLongRange for="zipCode" minimum="1" maximum="99999" />
-					</p:inputText>
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="zipCode" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="city" value="#{msg.ADMIN_DATA_CITY}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="city" size="10" maxlength="255" value="#{adminContactController.city}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="city" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="country" value="#{msg.ADMIN_SELECT_COUNTRY}" />
-				</div>
-
-				<div class="table-right-medium">
-					<widgets:outputCountrySelector id="country" value="#{adminContactController.contactCountry}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="country" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="landLineCountryCode" value="#{msg.ADMIN_PERSONAL_DATA_PHONE_NUMBER}" />
-				</div>
-
-				<div class="table-right-medium">
-					<widgets:outputCountrySelector id="landLineCountryCode" styleClass="select divider-right" value="#{adminContactController.landLineCountry}" />
-
-					<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{adminContactController.landLineAreaCode}">
-						<f:validator for="landLineAreaCode" validatorId="PhoneNumberValidator" />
-					</p:inputText>
-
-					<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{adminContactController.landLineNumber}">
-						<f:validator for="landLineNumber" validatorId="PhoneNumberValidator" />
-					</p:inputText>
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="faxCountryCode" value="#{msg.ADMIN_PERSONAL_DATA_FAX_NUMBER}" />
-				</div>
-
-				<div class="table-right-medium">
-					<widgets:outputCountrySelector id="faxCountryCode" styleClass="select divider-right" value="#{adminContactController.faxCountry}" />
-
-					<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{adminContactController.faxAreaCode}">
-						<f:validator for="faxAreaCode" validatorId="PhoneNumberValidator" />
-					</p:inputText>
-
-					<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{adminContactController.faxNumber}">
-						<f:validator for="faxNumber" validatorId="PhoneNumberValidator" />
-					</p:inputText>
-				</div>
-			</h:panelGroup>
-
-			<widgets:outputMobileNumberTableRow targetController="#{adminContactController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="emailAddress" value="#{msg.DATA_EMAIL_ADDRESS}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="emailAddress" size="20" maxlength="255" value="#{adminContactController.emailAddress}" validatorMessage="#{msg.ENTERED_EMAIL_ADDRESS_IS_INVALID}">
-						<f:validator for="emailAddress" validatorId="EmailAddressValidator" />
-						<f:attribute name="allowEmptyValue" value="#{allowEmptyRequiredData}" />
-					</p:inputText>
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="emailAddress" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="contactBirthday" value="#{msg.ADMIN_PERSONAL_DATA_BIRTHDAY}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:calendar id="contactBirthday" value="#{contactController.birthday}" />
-				</div>
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="error-container" layout="block">
-				<p:message for="contactBirthday" />
-			</h:panelGroup>
-
-			<h:panelGroup styleClass="table-row" layout="block">
-				<div class="table-left-medium">
-					<p:outputLabel for="contactComment" value="#{msg.ADMIN_PERSONAL_DATA_COMMENT}" />
-				</div>
-
-				<div class="table-right-medium">
-					<p:inputTextarea id="contactComment" styleClass="input" value="#{adminContactController.comment}" rows="7" cols="25" />
-				</div>
-			</h:panelGroup>
+			<p:panelGrid layout="grid" columns="2" columnClasses="ui-grid-col-4, ui-grid-col-8" styleClass="table table-full">
+				<p:outputLabel for="personalTitle" value="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" />
+				<widgets:outputPersonalTitleSelectionBox targetController="#{adminContactController}" allowEmptyRequiredData="#{allowEmptyRequiredData}" />
+
+				<p:outputLabel for="firstName" value="#{msg.ADMIN_PERSONAL_DATA_FIRST_NAME}" />
+				<p:inputText styleClass="input" id="firstName" size="10" maxlength="255" value="#{adminContactController.firstName}" />
+
+				<p:outputLabel for="title" value="#{msg.ADMIN_PERSONAL_DATA_TITLE}" />
+				<p:inputText styleClass="input" id="title" size="5" maxlength="255" value="#{adminContactController.academicTitle}" />
+
+				<p:outputLabel for="familyName" value="#{msg.ADMIN_PERSONAL_DATA_FAMILY_NAME}" />
+				<p:inputText styleClass="input" id="familyName" size="10" maxlength="255" value="#{adminContactController.familyName}" />
+
+				<p:outputLabel for="street" value="#{msg.ADMIN_DATA_STREET_NAME}" />
+				<p:inputText styleClass="input" id="street" size="20" maxlength="255" value="#{adminContactController.street}" />
+
+				<p:outputLabel for="houseNumber" value="#{msg.ADMIN_DATA_HOUSE_NUMBER}" />
+				<p:inputText styleClass="input" id="houseNumber" size="3" maxlength="5" value="#{adminContactController.houseNumber}" validatorMessage="#{msg.ENTERED_HOUSE_NUMBER_INVALID}">
+					<f:validateLongRange for="houseNumber" minimum="1" maximum="500" />
+				</p:inputText>
+
+				<p:outputLabel for="houseNumberExtension" value="#{msg.ADMIN_DATA_HOUSE_NUMBER_EXTENSION}" />
+				<p:inputText styleClass="input" id="houseNumberExtension" size="2" maxlength="2" value="#{adminContactController.houseNumberExtension}" />
+
+				<p:outputLabel for="zipCode" value="#{msg.ADMIN_DATA_ZIP_CODE}" />
+				<p:inputText styleClass="input" id="zipCode" size="5" maxlength="6" value="#{adminContactController.zipCode}" validatorMessage="#{msg.ENTERED_ZIP_CODE_INVALID}">
+					<f:validateLongRange for="zipCode" minimum="1" maximum="99999" />
+				</p:inputText>
+
+				<p:outputLabel for="city" value="#{msg.ADMIN_DATA_CITY}" />
+				<p:inputText styleClass="input" id="city" size="10" maxlength="255" value="#{adminContactController.city}" />
+
+				<p:outputLabel for="country" value="#{msg.ADMIN_SELECT_COUNTRY}" />
+				<widgets:outputCountrySelector id="country" value="#{adminContactController.contactCountry}" />
+
+				<p:outputLabel for="landLineCountryCode" value="#{msg.ADMIN_PERSONAL_DATA_PHONE_NUMBER}" />
+				<widgets:inputLandLineNumberPanelGrid targetController="#{adminContactController}" />
+
+				<p:outputLabel for="faxCountryCode" value="#{msg.ADMIN_PERSONAL_DATA_FAX_NUMBER}" />
+				<widgets:inputFaxNumberPanelGrid targetController="#{adminContactController}" />
+
+				<p:outputLabel for="mobileNumber" value="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
+				<widgets:inputMobileNumberPanelGrid targetController="#{adminContactController}" />
+
+				<p:outputLabel for="emailAddress" value="#{msg.DATA_EMAIL_ADDRESS}" />
+				<p:inputText styleClass="input" id="emailAddress" size="20" maxlength="255" value="#{adminContactController.emailAddress}" validatorMessage="#{msg.ENTERED_EMAIL_ADDRESS_IS_INVALID}">
+					<f:validator for="emailAddress" validatorId="EmailAddressValidator" />
+					<f:attribute name="allowEmptyValue" value="#{allowEmptyRequiredData}" />
+				</p:inputText>
+
+				<p:outputLabel for="contactBirthday" value="#{msg.ADMIN_PERSONAL_DATA_BIRTHDAY}" />
+				<p:calendar id="contactBirthday" value="#{contactController.birthday}" />
+
+				<p:outputLabel for="contactComment" value="#{msg.ADMIN_PERSONAL_DATA_COMMENT}" />
+				<p:inputTextarea id="contactComment" styleClass="input" value="#{adminContactController.comment}" rows="7" cols="35" />
+			</p:panelGrid>
 		</fieldset>
-	</h:panelGroup>
-
-	<h:panelGroup styleClass="para notice" layout="block">
-		<ul>
-			<li>
-				<h:outputText value="#{msg.ADMIN_CONTACT_DATA_EMAIL_ADDRESS_NOTICE}" />
-			</li>
-		</ul>
-	</h:panelGroup>
+	</p:row>
+
+	<p:row>
+		<h:panelGroup styleClass="para notice" layout="block">
+			<ul>
+				<li>
+					<h:outputText value="#{msg.ADMIN_CONTACT_DATA_EMAIL_ADDRESS_NOTICE}" />
+				</li>
+			</ul>
+		</h:panelGroup>
+	</p:row>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/admin/links/mini/employee/admin_employee_links.tpl b/web/WEB-INF/resources/tags/admin/links/mini/employee/admin_employee_links.tpl
new file mode 100644
index 00000000..5a935432
--- /dev/null
+++ b/web/WEB-INF/resources/tags/admin/links/mini/employee/admin_employee_links.tpl
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<ui:fragment rendered="#{empty rendered or rendered}">
+		<ul class="navbar-mini">
+			<ui:fragment rendered="#{empty renderShowLink or renderShowLink}">
+				<li class="navlink-mini">
+					<p:link outcome="admin_show_branch_office" value="#{msg.ADMIN_LINK_SHOW_SHORT}" title="#{msg.ADMIN_LINK_SHOW_COMPANY_EMPLOYEE_TITLE}">
+						<f:param name="employeeId" value="#{employee.employeeId}" />
+					</p:link>
+				</li>
+			</ui:fragment>
+
+			<li class="navlink-mini">
+				<p:link outcome="admin_edit_branch_office" value="#{msg.ADMIN_LINK_EDIT_SHORT}" title="#{msg.ADMIN_LINK_EDIT_COMPANY_EMPLOYEE_TITLE}">
+					<f:param name="employeeId" value="#{employee.employeeId}" />
+				</p:link>
+			</li>
+
+			<li class="navlink-mini">
+				<p:link outcome="admin_delete_branch_office">
+					<h:outputText styleClass="link-danger" value="#{msg.ADMIN_LINK_DELETE_SHORT}" title="#{msg.ADMIN_LINK_DELETE_COMPANY_EMPLOYEE_TITLE}" />
+					<f:param name="employeeId" value="#{employee.employeeId}" />
+				</p:link>
+			</li>
+		</ul>
+	</ui:fragment>
+</ui:composition>
diff --git a/web/WEB-INF/resources/tags/admin/panel_grids/fax/admin_fax_data.tpl b/web/WEB-INF/resources/tags/admin/panel_grids/fax/admin_fax_data.tpl
index a76a3480..95b2c7b6 100644
--- a/web/WEB-INF/resources/tags/admin/panel_grids/fax/admin_fax_data.tpl
+++ b/web/WEB-INF/resources/tags/admin/panel_grids/fax/admin_fax_data.tpl
@@ -6,9 +6,13 @@
 	xmlns:f="http://java.sun.com/jsf/core"
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
+	xmlns:p="http://primefaces.org/ui"
+	>
 
-	<h:panelGrid id="fax_data" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_FAX_NUMBER_DATA}" tableStyleClass="table table-medium" columns="2" rendered="#{empty rendered or rendered == true}">
+	<!--
+	@TODO: summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_FAX_NUMBER_DATA}"
+	-->
+	<p:panelGrid columns="2" styleClass="table table-full" rendered="#{empty rendered or rendered == true}">
 		<f:facet name="header">
 			<h:outputText value="#{msg.ADMIN_HEADER_SHOW_FAX_NUMBER_DATA}" />
 		</f:facet>
@@ -48,9 +52,9 @@
 		<h:column rendered="#{empty showAdminMiniLinks or showAdminMiniLinks == true}">
 			<p:outputLabel styleClass="table-data-label" value="#{msg.ADMIN_SHOW_ADMINISTRATIVE_LINKS}" />
 
-			<div class="table-data-field">
+			<h:panelGroup styleClass="table-data-field" layout="block">
 				<links:outputFaxNumberAdminMiniLinks faxNumber="#{faxNumber}" contact="#{contact}" renderShowLink="#{renderShowLink}" />
-			</div>
+			</h:panelGroup>
 		</h:column>
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/admin/panel_grids/landline/admin_landline_data.tpl b/web/WEB-INF/resources/tags/admin/panel_grids/landline/admin_landline_data.tpl
index ee7662df..30e6f79b 100644
--- a/web/WEB-INF/resources/tags/admin/panel_grids/landline/admin_landline_data.tpl
+++ b/web/WEB-INF/resources/tags/admin/panel_grids/landline/admin_landline_data.tpl
@@ -6,9 +6,13 @@
 	xmlns:f="http://java.sun.com/jsf/core"
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
+	xmlns:p="http://primefaces.org/ui"
+	>
 
-	<h:panelGrid id="landline_data" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_LAND_LINE_NUMBER_DATA}" tableStyleClass="table table-medium" columns="2" rendered="#{empty rendered or rendered == true}">
+	<!--
+	@TODO: summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_LAND_LINE_NUMBER_DATA}"
+	-->
+	<p:panelGrid columns="2" styleClass="table table-full" rendered="#{empty rendered or rendered == true}">
 		<f:facet name="header">
 			<h:outputText value="#{msg.ADMIN_HEADER_SHOW_LAND_LINE_NUMBER_DATA}" />
 		</f:facet>
@@ -48,9 +52,9 @@
 		<h:column rendered="#{empty showAdminMiniLinks or showAdminMiniLinks == true}">
 			<p:outputLabel styleClass="table-data-label" value="#{msg.ADMIN_SHOW_ADMINISTRATIVE_LINKS}" />
 
-			<div class="table-data-field">
+			<h:panelGroup styleClass="table-data-field" layout="block">
 				<links:outputLandLineNumberAdminMiniLinks landLineNumber="#{landLineNumber}" contact="#{contact}" renderShowLink="#{renderShowLink}" />
-			</div>
+			</h:panelGroup>
 		</h:column>
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/admin/panel_grids/mobile/admin_mobile_data.tpl b/web/WEB-INF/resources/tags/admin/panel_grids/mobile/admin_mobile_data.tpl
index e62548ce..7de9f10f 100644
--- a/web/WEB-INF/resources/tags/admin/panel_grids/mobile/admin_mobile_data.tpl
+++ b/web/WEB-INF/resources/tags/admin/panel_grids/mobile/admin_mobile_data.tpl
@@ -6,21 +6,21 @@
 	xmlns:f="http://java.sun.com/jsf/core"
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
+	xmlns:p="http://primefaces.org/ui"
+	>
 
-	<h:panelGrid id="mobile_data" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_MOBILE_NUMBER_DATA}" tableStyleClass="table table-medium" columns="2" rendered="#{empty rendered or rendered == true}">
+	<!--
+	@TODO: summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_MOBILE_NUMBER_DATA}"
+	-->
+	<p:panelGrid columns="2" styleClass="table table-full" rendered="#{empty rendered or rendered == true}">
 		<f:facet name="header">
 			<h:outputText value="#{msg.ADMIN_HEADER_SHOW_MOBILE_NUMBER_DATA}" />
 		</f:facet>
 
 		<h:column>
-			<h:panelGroup>
-				<p:outputLabel for="mobileNumberId" styleClass="table-data-label" value="#{msg.ADMIN_ID_NUMBER}" />
+			<p:outputLabel for="mobileNumberId" styleClass="table-data-label" value="#{msg.ADMIN_ID_NUMBER}" />
 
-				<h:outputText id="mobileNumberId" styleClass="table-data-field" value="#{mobileNumber.phoneId}" />
-
-				<p:message for="mobileNumberId" />
-			</h:panelGroup>
+			<h:outputText id="mobileNumberId" styleClass="table-data-field" value="#{mobileNumber.phoneId}" />
 		</h:column>
 
 		<h:column>
@@ -57,9 +57,9 @@
 		<h:column rendered="#{empty showAdminMiniLinks or showAdminMiniLinks == true}">
 			<p:outputLabel styleClass="table-data-label" value="#{msg.ADMIN_SHOW_ADMINISTRATIVE_LINKS}" />
 
-			<div class="table-data-field">
+			<h:panelGroup styleClass="table-data-field" layout="block">
 				<links:outputMobileNumberAdminMiniLinks mobileNumber="#{mobileNumber}" contact="#{contact}" renderShowLink="#{renderShowLink}" />
-			</div>
+			</h:panelGroup>
 		</h:column>
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/input/panel_grid/fax_input_panel_grid.tpl b/web/WEB-INF/resources/tags/input/panel_grid/fax_input_panel_grid.tpl
new file mode 100644
index 00000000..913a609b
--- /dev/null
+++ b/web/WEB-INF/resources/tags/input/panel_grid/fax_input_panel_grid.tpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<p:panelGrid layout="grid" columns="3" rendered="#{empty rendered or rendered == true}">
+		<widgets:outputCountrySelector id="faxCountryCode" styleClass="select divider-right" value="#{targetController.faxCountry}" />
+
+		<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
+			<f:validator for="faxAreaCode" validatorId="PhoneNumberValidator" />
+		</p:inputText>
+
+		<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{targetController.faxNumber}">
+			<f:validator for="faxNumber" validatorId="PhoneNumberValidator" />
+		</p:inputText>
+	</p:panelGrid>
+</ui:composition>
diff --git a/web/WEB-INF/resources/tags/input/panel_grid/landline_input_panel_grid.tpl b/web/WEB-INF/resources/tags/input/panel_grid/landline_input_panel_grid.tpl
new file mode 100644
index 00000000..14dbde05
--- /dev/null
+++ b/web/WEB-INF/resources/tags/input/panel_grid/landline_input_panel_grid.tpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<p:panelGrid layout="grid" columns="3" rendered="#{empty rendered or rendered == true}">
+		<widgets:outputCountrySelector id="landLineCountryCode" styleClass="select divider-right" value="#{targetController.landLineCountry}" />
+
+		<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
+			<f:validator for="landLineAreaCode" validatorId="PhoneNumberValidator" />
+		</p:inputText>
+
+		<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{targetController.landLineNumber}">
+			<f:validator for="landLineNumber" validatorId="PhoneNumberValidator" />
+		</p:inputText>
+	</p:panelGrid>
+</ui:composition>
diff --git a/web/WEB-INF/resources/tags/input/panel_grid/mobile_input_panel_grid.tpl b/web/WEB-INF/resources/tags/input/panel_grid/mobile_input_panel_grid.tpl
new file mode 100644
index 00000000..237d5902
--- /dev/null
+++ b/web/WEB-INF/resources/tags/input/panel_grid/mobile_input_panel_grid.tpl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<p:panelGrid layout="grid" columns="2" rendered="#{empty rendered or rendered == true}">
+		<p:selectOneMenu
+			id="mobileProvider"
+			value="#{targetController.mobileProvider}"
+			filter="true"
+			filterMatchMode="contains"
+			>
+			<f:converter converterId="MobileProviderConverter" />
+			<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+			<f:selectItems value="#{mobileProviderController.allMobileProviders()}" var="mobileProvider" itemValue="#{mobileProvider}" itemLabel="#{mobileProvider.providerCountry.countryExternalDialPrefix}#{mobileProvider.providerDialPrefix} (#{mobileProvider.providerName})" />
+		</p:selectOneMenu>
+
+		<p:inputText styleClass="input" id="mobileNumber" size="10" maxlength="20" value="#{targetController.mobileNumber}">
+			<f:validator for="mobileNumber" validatorId="PhoneNumberValidator" />
+		</p:inputText>
+	</p:panelGrid>
+</ui:composition>
diff --git a/web/WEB-INF/resources/tags/input/selection_box/personal_title_selection_box.tpl b/web/WEB-INF/resources/tags/input/selection_box/personal_title_selection_box.tpl
new file mode 100644
index 00000000..904f825c
--- /dev/null
+++ b/web/WEB-INF/resources/tags/input/selection_box/personal_title_selection_box.tpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<p:selectOneRadio
+		id="personalTitle"
+		value="#{targetController.personalTitle}"
+		required="#{(empty allowEmptyRequiredData or not allowEmptyRequiredData) and featureController.isFeatureEnabled(targetController.controllerType.concat('_personal_title'))}"
+		requiredMessage="#{msg.FIELD_PERSONAL_TITLE_REQUIRED}"
+		rendered="#{empty rendered or rendered == true}"
+		>
+		<f:selectItems value="#{genderController.selectableGenders}" var="personalTitle" itemValue="#{personalTitle}" itemLabel="#{msg[personalTitle.messageKey]}" />
+	</p:selectOneRadio>
+</ui:composition>
diff --git a/web/WEB-INF/resources/tags/table_rows/fax_input_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/fax_input_table_row.tpl
index 16c868df..0240d378 100644
--- a/web/WEB-INF/resources/tags/table_rows/fax_input_table_row.tpl
+++ b/web/WEB-INF/resources/tags/table_rows/fax_input_table_row.tpl
@@ -3,35 +3,25 @@
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
 	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<ui:fragment rendered="#{empty rendered or rendered == true}">
-		<h:panelGroup styleClass="table-row" layout="block">
-			<div class="table-left-medium">
-				<p:outputLabel for="faxNumber" value="#{labelMessage}" />
-			</div>
+	<p:row rendered="#{empty rendered or rendered == true}">
+		<p:outputLabel for="faxNumber" value="#{labelMessage}" />
 
-			<div class="table-right-medium">
-				<widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{targetController.faxCountry}" />
+		<p:column>
+			<widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{targetController.faxCountry}" />
+			<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
+				<f:validator validatorId="PhoneNumberValidator" />
+			</p:inputText>
+			<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{targetController.faxNumber}">
+				<f:validator validatorId="PhoneNumberValidator" />
+			</p:inputText>
+		</p:column>
 
-				<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
-					<f:validator validatorId="PhoneNumberValidator" />
-				</p:inputText>
-
-				<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{targetController.faxNumber}">
-					<f:validator validatorId="PhoneNumberValidator" />
-				</p:inputText>
-			</div>
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
+		<p:column>
 			<p:message for="faxAreaCode" />
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
 			<p:message for="faxNumber" />
-		</h:panelGroup>
-	</ui:fragment>
+		</p:column>
+	</p:row>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/table_rows/landline_input_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/landline_input_table_row.tpl
index df8d6e65..262ab7ba 100644
--- a/web/WEB-INF/resources/tags/table_rows/landline_input_table_row.tpl
+++ b/web/WEB-INF/resources/tags/table_rows/landline_input_table_row.tpl
@@ -3,35 +3,25 @@
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
 	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<ui:fragment rendered="#{empty rendered or rendered == true}">
-		<h:panelGroup styleClass="table-row" layout="block">
-			<div class="table-left-medium">
-				<p:outputLabel for="landLineNumber" value="#{labelMessage}" />
-			</div>
+	<p:row rendered="#{empty rendered or rendered == true}">
+		<p:outputLabel for="landLineNumber" value="#{labelMessage}" />
 
-			<div class="table-right-medium">
-				<widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{targetController.landLineCountry}" />
+		<p:column>
+			<widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{targetController.landLineCountry}" />
+			<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
+				<f:validator validatorId="PhoneNumberValidator" />
+			</p:inputText>
+			<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{targetController.landLineNumber}">
+				<f:validator validatorId="PhoneNumberValidator" />
+			</p:inputText>
+		</p:column>
 
-				<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
-					<f:validator validatorId="PhoneNumberValidator" />
-				</p:inputText>
-
-				<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{targetController.landLineNumber}">
-					<f:validator validatorId="PhoneNumberValidator" />
-				</p:inputText>
-			</div>
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
+		<p:column>
 			<p:message for="landLineAreaCode" />
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
 			<p:message for="landLineNumber" />
-		</h:panelGroup>
-	</ui:fragment>
+		</p:column>
+	</p:row>
 </ui:composition>
diff --git a/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl
deleted file mode 100644
index f289866d..00000000
--- a/web/WEB-INF/resources/tags/table_rows/mobile_selection_table_row.tpl
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<ui:composition
-	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
-
-	<ui:fragment rendered="#{empty rendered or rendered == true}">
-		<h:panelGroup styleClass="table-row" layout="block">
-			<div class="table-left-medium">
-				<p:outputLabel for="mobileNumber" value="#{labelMessage}" />
-			</div>
-
-			<div class="table-right-medium">
-				<p:selectOneMenu
-					id="mobileProvider"
-					value="#{targetController.mobileProvider}"
-					filter="true"
-					filterMatchMode="contains"
-					>
-					<f:converter converterId="MobileProviderConverter" />
-					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
-					<f:selectItems value="#{mobileProviderController.allMobileProviders()}" var="mobileProvider" itemValue="#{mobileProvider}" itemLabel="#{mobileProvider.providerCountry.countryExternalDialPrefix}#{mobileProvider.providerDialPrefix} (#{mobileProvider.providerName})" />
-				</p:selectOneMenu>
-
-				<p:inputText styleClass="input" id="mobileNumber" size="10" maxlength="20" value="#{targetController.mobileNumber}">
-					<f:validator for="mobileNumber" validatorId="PhoneNumberValidator" />
-				</p:inputText>
-			</div>
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
-			<p:message for="mobileNumber" />
-		</h:panelGroup>
-	</ui:fragment>
-</ui:composition>
diff --git a/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl
deleted file mode 100644
index 1e0bbf59..00000000
--- a/web/WEB-INF/resources/tags/table_rows/user_personal_title_table_row.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<ui:composition
-	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-	xmlns:p="http://primefaces.org/ui">
-
-	<ui:fragment rendered="#{empty rendered or rendered == true}">
-		<h:panelGroup styleClass="table-row" layout="block">
-			<div class="table-left-medium">
-				<p:outputLabel for="userPersonalTitle" value="#{msg.PERSONAL_DATA_PERSONAL_TITLE}" />
-			</div>
-
-			<div class="table-right-medium">
-				<p:selectOneMenu
-					id="userPersonalTitle"
-					value="#{targetController.personalTitle}"
-					filter="true"
-					filterMatchMode="contains"
-					required="#{(empty allowEmptyRequiredData or not allowEmptyRequiredData) and featureController.isFeatureEnabled(targetController.controllerType.concat('_personal_title'))}"
-					requiredMessage="#{msg.FIELD_PERSONAL_TITLE_REQUIRED}">
-					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" />
-					<f:selectItems value="#{genderController.selectableGenders}" var="personalTitle" itemValue="#{personalTitle}" itemLabel="#{msg[personalTitle.messageKey]}" />
-				</p:selectOneMenu>
-			</div>
-		</h:panelGroup>
-
-		<h:panelGroup styleClass="error-container" layout="block">
-			<p:message for="userPersonalTitle" />
-		</h:panelGroup>
-	</ui:fragment>
-</ui:composition>
diff --git a/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl b/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl
index d4872e66..2f3f6f18 100644
--- a/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl
+++ b/web/WEB-INF/resources/tags/table_rows/user_profile_mode_table_row.tpl
@@ -1,32 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <ui:composition
 	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
 	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<ui:fragment rendered="#{empty rendered or rendered == true}">
-		<h:panelGroup styleClass="table-row" layout="block">
-			<div class="table-left-medium">
-				<p:outputLabel for="profileMode" value="#{labelMessage}" />
-			</div>
+	<p:row rendered="#{empty rendered or rendered == true}">
+		<p:outputLabel for="profileMode" value="#{labelMessage}" />
 
-			<div class="table-right-medium">
-				<p:selectOneMenu
-					id="profileMode"
-					value="#{targetController.userProfileMode}"
-					filter="true"
-					filterMatchMode="contains"
-					>
-					<f:selectItems value="#{profileModeController.allProfileModes()}" var="mode" itemValue="#{mode}" itemLabel="#{msg[mode.messageKey]}" />
-				</p:selectOneMenu>
-			</div>
-		</h:panelGroup>
+		<p:selectOneMenu
+			id="profileMode"
+			value="#{targetController.userProfileMode}"
+			filter="true"
+			filterMatchMode="contains"
+			>
+			<f:selectItems value="#{profileModeController.allProfileModes()}" var="mode" itemValue="#{mode}" itemLabel="#{msg[mode.messageKey]}" />
+		</p:selectOneMenu>
 
-		<h:panelGroup styleClass="error-container" layout="block">
-			<p:message for="personalTitle" />
-		</h:panelGroup>
-	</ui:fragment>
+		<p:message for="personalTitle" />
+	</p:row>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/admin_base.tpl b/web/WEB-INF/templates/admin/admin_base.tpl
index 2aedc46a..81cb7e1c 100644
--- a/web/WEB-INF/templates/admin/admin_base.tpl
+++ b/web/WEB-INF/templates/admin/admin_base.tpl
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!--
-TODO: Add something here that should be displayed on all admin pages
+@TODO: Add something here that should be displayed on all administrative pages
 //-->
 <ui:composition
 	template="/WEB-INF/templates/base.tpl"
diff --git a/web/WEB-INF/templates/admin/admin_footer.tpl b/web/WEB-INF/templates/admin/admin_footer.tpl
index ff9b5c83..dfdfde4f 100644
--- a/web/WEB-INF/templates/admin/admin_footer.tpl
+++ b/web/WEB-INF/templates/admin/admin_footer.tpl
@@ -9,7 +9,7 @@
 
 	<pm:footer id="footer" fixed="true" tapToggle="false">
 		<ul class="navbar-horizontal">
-			<li><p:link outcome="index" value="#{msg.LINK_ADMIN_FOOTER_TO_WEBPAGE}" /></li>
+			<li><p:link outcome="index" value="#{msg.ADMIN_LINK_FOOTER_TO_WEBPAGE}" /></li>
 		</ul>
 	</pm:footer>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/admin_menu.tpl b/web/WEB-INF/templates/admin/admin_menu.tpl
index e15f2733..870647c0 100644
--- a/web/WEB-INF/templates/admin/admin_menu.tpl
+++ b/web/WEB-INF/templates/admin/admin_menu.tpl
@@ -7,51 +7,51 @@
 	xmlns:p="http://primefaces.org/ui"
 	xmlns:pm="http://primefaces.org/mobile">
 
-	<div id="menu" data-role="panel" class="menu_outer" data-position="left" data-display="overlay" data-theme="a">
-		<h:form>
-			<p:menu>
-				<p:submenu label="#{msg.ADMIN_MENU_MAIN_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_INDEX_TITLE}" outcome="admin_index" value="#{msg.LINK_ADMIN_INDEX}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_USER_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_USER_TITLE}" outcome="admin_list_user" value="#{msg.LINK_ADMIN_LIST_USER}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_EXPORT_USER_TITLE}" outcome="admin_export_user" value="#{msg.LINK_ADMIN_EXPORT_USER}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_CONTACT_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_CONTACT_TITLE}" outcome="admin_list_contact" value="#{msg.LINK_ADMIN_LIST_CONTACT}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_EXPORT_CONTACT_TITLE}" outcome="admin_export_contact" value="#{msg.LINK_ADMIN_EXPORT_CONTACT}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_BUSINESS_CONTACTS_TITLE}" rendered="#{featureController.isFeatureEnabled('basic_company_data')}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE}" outcome="admin_list_basic_company_data" value="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES_TITLE}" outcome="admin_list_branch_offices" value="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES}" />
-				</p:submenu>
-
-				<p:submenu label="#{project.ADMIN_MENU_FINANCIAL_RECEIPTS_TITLE}">
-					<p:menuitem title="#{project.LINK_ADMIN_LIST_FINANCIAL_RECEIPTS_TITLE}" outcome="admin_list_receipts" value="#{project.LINK_ADMIN_LIST_FINANCIAL_RECEIPTS}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_PHONE_NUMBERS_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS_TITLE}" outcome="admin_list_landline" value="#{msg.LINK_ADMIN_LIST_LAND_LINE_PHONE_NUMBERS}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS_TITLE}" outcome="admin_list_mobile" value="#{msg.LINK_ADMIN_LIST_MOBILE_PHONE_NUMBERS}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_FAX_PHONE_NUMBERS_TITLE}" outcome="admin_list_fax" value="#{msg.LINK_ADMIN_LIST_FAX_PHONE_NUMBERS}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_COUNTRY_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_COUNTRIES_TITLE}" outcome="admin_list_countries" value="#{msg.LINK_ADMIN_LIST_COUNTRIES}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_MOBILE_PROVIDER_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LIST_MOBILE_PROVIDER_TITLE}" outcome="admin_list_mobile_provider" value="#{msg.LINK_ADMIN_LIST_MOBILE_PROVIDER}" />
-				</p:submenu>
-
-				<p:submenu label="#{msg.ADMIN_MENU_LOGOUT_TITLE}">
-					<p:menuitem title="#{msg.LINK_ADMIN_LOGOUT_TITLE}" outcome="admin_logout" value="#{msg.LINK_ADMIN_LOGOUT}" />
-					<p:menuitem title="#{msg.LINK_ADMIN_TO_WEBPAGE_TITLE}" outcome="index" value="#{msg.LINK_ADMIN_TO_WEBPAGE}" />
-				</p:submenu>
-			</p:menu>
-		</h:form>
-	</div>
+	<h:form>
+		<p:menu>
+			<p:submenu label="#{msg.ADMIN_MENU_MAIN_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_INDEX_TITLE}" outcome="admin_index" value="#{msg.ADMIN_LINK_INDEX}" />
+			</p:submenu>
+
+			<ui:include src="/WEB-INF/templates/admin/menu/project.tpl" />
+
+			<p:submenu label="#{msg.ADMIN_MENU_USER_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_USER_TITLE}" outcome="admin_list_user" value="#{msg.ADMIN_LINK_LIST_USER}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_EXPORT_USER_TITLE}" outcome="admin_export_user" value="#{msg.ADMIN_LINK_EXPORT_USER}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_CONTACT_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_CONTACT_TITLE}" outcome="admin_list_contact" value="#{msg.ADMIN_LINK_LIST_CONTACT}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_EXPORT_CONTACT_TITLE}" outcome="admin_export_contact" value="#{msg.ADMIN_LINK_EXPORT_CONTACT}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_BASIC_COMPANY_DATA_TITLE}" rendered="#{featureController.isFeatureEnabled('basic_company_data')}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_BASIC_COMPANY_DATA_TITLE}" outcome="admin_list_basic_company_data" value="#{msg.ADMIN_LINK_LIST_BASIC_COMPANY_DATA}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_BRANCH_OFFICES_TITLE}" outcome="admin_list_branch_office" value="#{msg.ADMIN_LINK_LIST_BRANCH_OFFICES}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_COMPANY_EMPLOYEE_TITLE}" rendered="#{featureController.isFeatureEnabled('company_employee')}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_COMPANY_EMPLOYEE_TITLE}" outcome="admin_list_company_employee" value="#{msg.ADMIN_LINK_LIST_COMPANY_EMPLOYEE}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_PHONE_NUMBERS_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS_TITLE}" outcome="admin_list_landline" value="#{msg.ADMIN_LINK_LIST_LAND_LINE_PHONE_NUMBERS}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS_TITLE}" outcome="admin_list_mobile" value="#{msg.ADMIN_LINK_LIST_MOBILE_PHONE_NUMBERS}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_FAX_PHONE_NUMBERS_TITLE}" outcome="admin_list_fax" value="#{msg.ADMIN_LINK_LIST_FAX_PHONE_NUMBERS}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_COUNTRY_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_COUNTRIES_TITLE}" outcome="admin_list_countries" value="#{msg.ADMIN_LINK_LIST_COUNTRIES}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_MOBILE_PROVIDER_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LIST_MOBILE_PROVIDER_TITLE}" outcome="admin_list_mobile_provider" value="#{msg.ADMIN_LINK_LIST_MOBILE_PROVIDER}" />
+			</p:submenu>
+
+			<p:submenu label="#{msg.ADMIN_MENU_LOGOUT_TITLE}">
+				<p:menuitem title="#{msg.ADMIN_LINK_LOGOUT_TITLE}" outcome="admin_logout" value="#{msg.ADMIN_LINK_LOGOUT}" />
+				<p:menuitem title="#{msg.ADMIN_LINK_TO_WEBPAGE_TITLE}" outcome="index" value="#{msg.ADMIN_LINK_TO_WEBPAGE}" />
+			</p:submenu>
+		</p:menu>
+	</h:form>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl b/web/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl
index 2c486d5f..bf74c6e4 100644
--- a/web/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl
+++ b/web/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl
@@ -19,7 +19,7 @@
 				</div>
 
 				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="companyName" size="30" maxlength="200" required="true" requiredMessage="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED}" value="#{adminCompanyDataController.companyName}">
+					<p:inputText styleClass="input" id="companyName" size="30" maxlength="200" required="true" requiredMessage="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME_REQUIRED}" value="#{adminBasicCompanyDataController.companyName}">
 						<f:validator validatorId="CompanyNameValidator" />
 						<f:attribute name="checkExisting" value="false" />
 					</p:inputText>
@@ -36,7 +36,7 @@
 				</div>
 
 				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="companyEmailAddress" size="20" maxlength="255" value="#{adminCompanyDataController.companyEmailAddress}" validatorMessage="#{msg.ENTERED_EMAIL_ADDRESS_IS_INVALID}">
+					<p:inputText styleClass="input" id="companyEmailAddress" size="20" maxlength="255" value="#{adminBasicCompanyDataController.companyEmailAddress}" validatorMessage="#{msg.ENTERED_EMAIL_ADDRESS_IS_INVALID}">
 						<f:validator validatorId="EmailAddressValidator" />
 						<f:attribute name="allowEmptyValue" value="true" />
 					</p:inputText>
@@ -67,7 +67,7 @@
 				</div>
 
 				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="companyTaxNumber" size="30" maxlength="200" value="#{adminCompanyDataController.companyTaxNumber}" />
+					<p:inputText styleClass="input" id="companyTaxNumber" size="30" maxlength="200" value="#{adminBasicCompanyDataController.companyTaxNumber}" />
 				</div>
 			</h:panelGroup>
 
@@ -81,7 +81,7 @@
 				</div>
 
 				<div class="table-right-medium">
-					<p:inputText styleClass="input" id="companyWebsiteUrl" size="30" maxlength="200" value="#{adminCompanyDataController.companyWebsiteUrl}" validatorMessage="#{msg.URL_NOT_MATCHING_REGULAR_EXPRESSION}">
+					<p:inputText styleClass="input" id="companyWebsiteUrl" size="30" maxlength="200" value="#{adminBasicCompanyDataController.companyWebsiteUrl}" validatorMessage="#{msg.URL_NOT_MATCHING_REGULAR_EXPRESSION}">
 						<f:validator validatorId="UrlValidator" />
 						<f:attribute name="allowEmptyValue" value="true" />
 					</p:inputText>
@@ -100,7 +100,7 @@
 				<div class="table-right-medium">
 					<p:selectOneMenu
 						id="companyUserOwner"
-						value="#{adminCompanyDataController.companyUserOwner}"
+						value="#{adminBasicCompanyDataController.companyUserOwner}"
 						filter="true"
 						filterMatchMode="contains"
 						>
@@ -123,7 +123,7 @@
 				<div class="table-right-medium">
 					<p:selectOneMenu
 						id="companyContactEmployee"
-						value="#{adminCompanyDataController.companyContactEmployee}"
+						value="#{adminBasicCompanyDataController.companyContactEmployee}"
 						filter="true"
 						filterMatchMode="contains"
 						>
@@ -146,7 +146,7 @@
 				<div class="table-right-medium">
 					<p:selectOneMenu
 						id="companyFounder"
-						value="#{adminCompanyDataController.companyFounder}"
+						value="#{adminBasicCompanyDataController.companyFounder}"
 						filter="true"
 						filterMatchMode="contains"
 						>
@@ -169,7 +169,7 @@
 				<div class="table-right-medium">
 					<p:selectOneMenu
 						id="companyHeadQuarters"
-						value="#{adminCompanyDataController.companyHeadQuarters}"
+						value="#{adminBasicCompanyDataController.companyHeadQuarters}"
 						filter="true"
 						filterMatchMode="contains"
 						>
@@ -190,13 +190,13 @@
 				</div>
 
 				<div class="table-right-medium">
-					<widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{adminCompanyDataController.landLineCountry}" />
+					<widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{adminBasicCompanyDataController.landLineCountry}" />
 
-					<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{adminCompanyDataController.landLineAreaCode}">
+					<p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{adminBasicCompanyDataController.landLineAreaCode}">
 						<f:validator for="landLineAreaCode" validatorId="PhoneNumberValidator" />
 					</p:inputText>
 
-					<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{adminCompanyDataController.landLineNumber}">
+					<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{adminBasicCompanyDataController.landLineNumber}">
 						<f:validator for="landLineNumber" validatorId="PhoneNumberValidator" />
 					</p:inputText>
 				</div>
@@ -220,13 +220,13 @@
 				</div>
 
 				<div class="table-right-medium">
-					<widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{adminCompanyDataController.faxCountry}" />
+					<widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{adminBasicCompanyDataController.faxCountry}" />
 
-					<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{adminCompanyDataController.faxAreaCode}">
+					<p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{adminBasicCompanyDataController.faxAreaCode}">
 						<f:validator for="faxAreaCode" validatorId="PhoneNumberValidator" />
 					</p:inputText>
 
-					<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{adminCompanyDataController.faxNumber}">
+					<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{adminBasicCompanyDataController.faxNumber}">
 						<f:validator for="faxNumber" validatorId="PhoneNumberValidator" />
 					</p:inputText>
 				</div>
@@ -255,7 +255,7 @@
 						id="companyComments"
 						rows="7"
 						cols="25"
-						value="#{adminCompanyDataController.companyComments}"
+						value="#{adminBasicCompanyDataController.companyComments}"
 						/>
 				</div>
 			</h:panelGroup>
diff --git a/web/WEB-INF/templates/admin/branch_offices/admin_form_branch_offices_data.tpl b/web/WEB-INF/templates/admin/branch_office/admin_form_branch_offices_data.tpl
similarity index 96%
rename from web/WEB-INF/templates/admin/branch_offices/admin_form_branch_offices_data.tpl
rename to web/WEB-INF/templates/admin/branch_office/admin_form_branch_offices_data.tpl
index 567e1a0d..44abe1f0 100644
--- a/web/WEB-INF/templates/admin/branch_offices/admin_form_branch_offices_data.tpl
+++ b/web/WEB-INF/templates/admin/branch_office/admin_form_branch_offices_data.tpl
@@ -15,7 +15,7 @@
 
 			<h:panelGroup styleClass="table-row" layout="block">
 				<div class="table-left-medium">
-					<p:outputLabel for="branchCompany" value="#{msg.ADMIN_SELECT_BRANCH_OFFICE_COMPANY}" />
+					<p:outputLabel for="branchCompany" value="#{msg.ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY}" />
 				</div>
 
 				<div class="table-right-medium">
@@ -29,7 +29,7 @@
 						>
 						<f:converter converterId="BasicCompanyDataConverter" />
 						<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
-						<f:selectItems value="#{basicDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+						<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
 					</p:selectOneMenu>
 				</div>
 			</h:panelGroup>
@@ -40,7 +40,7 @@
 
 			<h:panelGroup styleClass="table-row" layout="block">
 				<div class="table-left-medium">
-					<p:outputLabel for="branchContactEmployee" value="#{msg.ADMIN_SELECT_BRANCH_OFFICE_CONTACT_EMPLOYEE}" />
+					<p:outputLabel for="branchContactEmployee" value="#{msg.ADMIN_ASSIGN_BRANCH_OFFICE_CONTACT_EMPLOYEE}" />
 				</div>
 
 				<div class="table-right-medium">
@@ -63,7 +63,7 @@
 
 			<h:panelGroup styleClass="table-row" layout="block">
 				<div class="table-left-medium">
-					<p:outputLabel for="branchUserOwner" value="#{msg.ADMIN_SELECT_BRANCH_OFFICE_USER_OWNER}" />
+					<p:outputLabel for="branchUserOwner" value="#{msg.ADMIN_ASSIGN_BRANCH_OFFICE_USER_OWNER}" />
 				</div>
 
 				<div class="table-right-medium">
diff --git a/web/WEB-INF/templates/admin/contact/admin_contact_data_mini.tpl b/web/WEB-INF/templates/admin/contact/admin_contact_data_mini.tpl
index c8c9f099..be753430 100644
--- a/web/WEB-INF/templates/admin/contact/admin_contact_data_mini.tpl
+++ b/web/WEB-INF/templates/admin/contact/admin_contact_data_mini.tpl
@@ -6,7 +6,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<h:panelGrid id="show_contact" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA_MINI}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
+	<p:panelGrid id="show_contact" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA_MINI}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
 		<f:facet name="header">
 			<h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_CONTACT}">
 				<f:param value="#{beanHelper.contact.contactId}" />
@@ -30,5 +30,5 @@
 
 			<h:outputText id="contactFamilyName" styleClass="table-data-field" value="#{beanHelper.contact.contactFamilyName}" />
 		</h:column>
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/contact/admin_show_contact_data.tpl b/web/WEB-INF/templates/admin/contact/admin_show_contact_data.tpl
index 7b1b357e..70ba78a7 100644
--- a/web/WEB-INF/templates/admin/contact/admin_show_contact_data.tpl
+++ b/web/WEB-INF/templates/admin/contact/admin_show_contact_data.tpl
@@ -6,7 +6,7 @@
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
 
-	<h:panelGrid id="show_contact" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
+	<p:panelGrid id="show_contact" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
 		<f:facet name="header">
 			<h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_CONTACT}">
 				<f:param value="#{beanHelper.contact.contactId}" />
@@ -14,5 +14,5 @@
 		</f:facet>
 
 		<widgets:outputContactDataGridColumns />
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/employee/admin_form_employee_data.tpl b/web/WEB-INF/templates/admin/employee/admin_form_employee_data.tpl
new file mode 100644
index 00000000..762efd04
--- /dev/null
+++ b/web/WEB-INF/templates/admin/employee/admin_form_employee_data.tpl
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+	xmlns:f="http://xmlns.jcp.org/jsf/core"
+	xmlns:h="http://xmlns.jcp.org/jsf/html"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+	xmlns:p="http://primefaces.org/ui">
+
+	<p:row>
+		<fieldset class="fieldset">
+			<legend title="#{msg.ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND_TITLE}">
+				<h:outputText value="#{msg.ADMIN_COMPANY_EMPLOYEE_GENERAL_LEGEND}" />
+			</legend>
+
+			<p:panelGrid layout="grid" columns="2" columnClasses="ui-grid-col-4, ui-grid-col-8" styleClass="table table-full">
+				<p:outputLabel for="employeeCompany" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_COMPANY}" />
+				<p:selectOneMenu
+					id="employeeCompany"
+					value="#{adminCompanyEmployeeController.employeeCompany}"
+					filter="true"
+					filterMatchMode="contains"
+					required="true"
+					requiredMessage="#{msg.ADMIN_COMPANY_EMPLOYEE_COMPANY_REQUIRED}"
+					>
+					<f:converter converterId="BasicCompanyDataConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+					<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+				</p:selectOneMenu>
+				<p:message for="employeeCompany" />
+
+				<p:outputLabel for="employeeBranchOffice" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_BRANCH_OFFICE}" />
+				<p:selectOneMenu
+					id="employeeBranchOffice"
+					value="#{adminCompanyEmployeeController.employeeBranchOffice}"
+					filter="true"
+					filterMatchMode="contains"
+					>
+					<f:converter converterId="BranchOfficeConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+					<f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
+				</p:selectOneMenu>
+				<p:message for="employeeBranchOffice" />
+
+				<p:outputLabel for="employeePersonalContact" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_PERSONAL_DATA}" />
+				<p:selectOneMenu
+					id="employeePersonalContact"
+					value="#{adminCompanyEmployeeController.employeePersonalContact}"
+					filter="true"
+					filterMatchMode="contains"
+					>
+					<f:converter converterId="ContactConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+					<f:selectItems value="#{contactController.allContacts()}" var="contact" itemValue="#{contact}" itemLabel="#{beanHelper.renderContact(contact)}" />
+				</p:selectOneMenu>
+				<p:message for="employeePersonalContact" />
+
+				<p:outputLabel for="employeeUserOwner" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_USER_OWNER}" />
+				<p:selectOneMenu
+					id="employeeUserOwner"
+					value="#{adminCompanyEmployeeController.employeeUserOwner}"
+					filter="true"
+					filterMatchMode="contains"
+					>
+					<f:converter converterId="UserConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+					<f:selectItems value="#{userController.allUsers()}" var="employeeUserOwner" itemValue="#{employeeUserOwner}" itemLabel="#{employeeUserOwner.userContact.contactFirstName} #{employeeUserOwner.userContact.contactFamilyName} (#{employeeUserOwner.userName})" />
+				</p:selectOneMenu>
+				<p:message for="employeeUserOwner" />
+
+				<p:outputLabel for="employeeEmailAddress" value="#{msg.ADMIN_ENTER_COMPANY_EMPLOYEE_EMAIL_ADDRESS}" />
+				<p:inputText styleClass="input" id="employeeEmailAddress" size="20" maxlength="255" value="#{adminCompanyEmployeeController.employeeEmailAddress}" validatorMessage="#{msg.ENTERED_EMAIL_ADDRESS_IS_INVALID}">
+					<f:validator validatorId="EmailAddressValidator" />
+					<f:attribute name="allowEmptyValue" value="true" />
+				</p:inputText>
+				<p:message for="employeeEmailAddress" />
+
+				<p:outputLabel for="employeeStaffNumber" value="#{msg.ADMIN_ENTER_COMPANY_EMPLOYEE_STAFF_NUMBER}" />
+				<p:inputText styleClass="input" id="employeeStaffNumber" size="2" maxlength="10" value="#{adminCompanyEmployeeController.employeeStaffNumber}" />
+				<p:message for="employeeStaffNumber" />
+			</p:panelGrid>
+		</fieldset>
+	</p:row>
+
+	<p:row>
+		<fieldset class="fieldset">
+			<legend title="#{msg.ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND_TITLE}">
+				<h:outputText value="#{msg.ADMIN_COMPANY_EMPLOYEE_OTHER_LEGEND}" />
+			</legend>
+
+			<p:panelGrid layout="grid" columns="2" columnClasses="ui-grid-col-4, ui-grid-col-8" styleClass="table table-full">
+				<p:outputLabel for="employeePhoneExtension" value="#{msg.ADMIN_ENTER_PHONE_EXTENSION}" />
+				<p:inputText styleClass="input" id="employeePhoneExtension" size="2" maxlength="10" value="#{adminCompanyEmployeeController.employeePhoneExtension}" />
+				<p:message for="employeePhoneExtension" />
+
+				<p:outputLabel for="employeeDepartment" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_DEPARTMENT}" />
+				<p:selectOneMenu
+					id="employeeDepartment"
+					value="#{adminCompanyEmployeeController.employeeDepartment}"
+					filter="true"
+					filterMatchMode="contains"
+					>
+					<f:converter converterId="CompanyDepartmentConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+					<f:selectItems value="#{companyDepartmentController.allDepartments()}" var="department" itemValue="#{department}" itemLabel="#{beanHelper.renderDepartment(department)}" />
+				</p:selectOneMenu>
+				<p:message for="employeeDepartment" />
+
+				<p:outputLabel for="employeeHeadquarters" value="#{msg.ADMIN_ASSIGN_COMPANY_EMPLOYEE_HEADQUARTERS}" />
+				<p:selectOneMenu
+					id="employeeHeadquarters"
+					value="#{adminCompanyEmployeeController.employeeHeadquarters}"
+					filter="true"
+					filterMatchMode="contains"
+					>
+					<f:converter converterId="CompanyHeadquartersConverter" />
+					<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+					<f:selectItems value="#{companyHeadquartersController.allHeadquarterss()}" var="headquarters" itemValue="#{headquarters}" itemLabel="#{beanHelper.renderHeadquarters(headquarters)}" />
+				</p:selectOneMenu>
+				<p:message for="employeeHeadquarters" />
+
+				<p:column>
+					<p:outputLabel for="mobileNumber" value="#{msg.ADMIN_ENTER_COMPANY_EMPLOYEE_MOBILE_NUMBER}" />
+				</p:column>
+
+				<p:column colspan="2">
+					<widgets:inputMobileNumberPanelGrid targetController="#{adminCompanyEmployeeController}" />
+				</p:column>
+			</p:panelGrid>
+		</fieldset>
+	</p:row>
+</ui:composition>
diff --git a/web/WEB-INF/templates/admin/menu/project.tpl b/web/WEB-INF/templates/admin/menu/project.tpl
new file mode 100644
index 00000000..aa442752
--- /dev/null
+++ b/web/WEB-INF/templates/admin/menu/project.tpl
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:f="http://xmlns.jcp.org/jsf/core"
+	xmlns:h="http://xmlns.jcp.org/jsf/html"
+	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+
+	<!-- Put your stuff here //-->
+</ui:composition>
diff --git a/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl b/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
index 0659db91..72b6d38c 100644
--- a/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
+++ b/web/WEB-INF/templates/admin/mobile/admin_form_add_contact_mobile.tpl
@@ -10,7 +10,7 @@
 	<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_BEAN_HELPER_CONTACT_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
 	<h:form id="form_add_contact_mobile" rendered="#{not empty beanHelper.contact}">
-		<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:panelGroup styleClass="table table-full" layout="block">
 			<div class="table-header">
 				<h:outputText value="#{msg.ADMIN_ADD_CONTACT_MOBILE_NUMBER_FORM_TITLE}" />
 			</div>
@@ -37,7 +37,7 @@
 				<h:outputText value="#{msg.ADMIN_OR_ENTER_CONTACT_NEW_MOBILE_DATA}" />
 			</div>
 
-			<widgets:outputMobileNumberTableRow targetController="#{adminPhoneController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
+			<widgets:inputMobileNumberPanelGrid targetController="#{adminPhoneController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
 
 			<div class="table-footer">
 				<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
diff --git a/web/WEB-INF/templates/admin/user/admin_show_user_data.tpl b/web/WEB-INF/templates/admin/user/admin_show_user_data.tpl
index 7f5d92f5..2cd43c84 100644
--- a/web/WEB-INF/templates/admin/user/admin_show_user_data.tpl
+++ b/web/WEB-INF/templates/admin/user/admin_show_user_data.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<h:panelGrid id="admin_user_profile" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_USER_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.user}">
+	<p:panelGrid id="admin_user_profile" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_USER_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.user}">
 		<f:facet name="header">
 			<h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_USER}">
 				<f:param value="#{beanHelper.user.userName}" />
@@ -72,5 +72,5 @@
 		</h:column>
 
 		<widgets:outputContactDataGridColumns />
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/templates/admin/user/admin_show_user_data_mini.tpl b/web/WEB-INF/templates/admin/user/admin_show_user_data_mini.tpl
index ef3e1c95..d0564cfb 100644
--- a/web/WEB-INF/templates/admin/user/admin_show_user_data_mini.tpl
+++ b/web/WEB-INF/templates/admin/user/admin_show_user_data_mini.tpl
@@ -7,7 +7,7 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<h:panelGrid id="admin_user_profile" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_USER_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.user}">
+	<p:panelGrid id="admin_user_profile" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_USER_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.user}">
 		<f:facet name="header">
 			<h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_USER}">
 				<f:param value="#{beanHelper.user.userName}" />
@@ -48,5 +48,5 @@
 		</h:column>
 
 		<widgets:outputContactDataGridColumns />
-	</h:panelGrid>
+	</p:panelGrid>
 </ui:composition>
diff --git a/web/WEB-INF/templates/base.tpl b/web/WEB-INF/templates/base.tpl
index 69b8dbaa..0dfccbb5 100644
--- a/web/WEB-INF/templates/base.tpl
+++ b/web/WEB-INF/templates/base.tpl
@@ -9,102 +9,114 @@
 	<h:doctype rootElement="html" public="-//W3C//DTD XHTML 1.0 Transitional//EN" system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
 
 	<html lang="#{localizationController.locale.language}" xml:lang="#{localizationController.locale.language}" xmlns="http://www.w3.org/1999/xhtml">
-		<f:view locale="#{localizationController.locale}" contentType="text/html">
-			<h:head>
-				<f:facet name="first">
-					<ui:insert name="metadata" />
-
-					<meta http-equiv="X-UA-Compatible" content="IE=edge" />
-					<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-					<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
-					<meta name="apple-mobile-web-app-capable" content="yes" />
-				</f:facet>
-
-				<f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
-				<f:loadBundle var="project" basename="org.mxchange.localization.project" />
-
-				<h:outputStylesheet name="/css/default.css" />
-				<h:outputStylesheet name="/css/layout.css" />
-
-				<title>
-					<h:outputText value="#{initParam['project_title']}" />
-					<h:outputText value=" - " />
-					<ui:insert name="title">
-						<h:outputText value="Default title" />
-					</ui:insert>
-				</title>
-			</h:head>
-
-			<h:body>
-				<pm:header>
-					<div id="page-header">
-						<h1>
-							<h:outputText value="#{initParam['project_title']} - " />
-
-							<ui:insert name="title">
-								<h:outputText value="Default title" />
+		<f:view locale="#{localizationController.locale}" contentType="text/html" />
+		<h:head>
+			<f:facet name="first">
+				<ui:insert name="metadata" />
+
+				<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+				<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+				<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
+				<meta name="apple-mobile-web-app-capable" content="yes" />
+			</f:facet>
+
+			<f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
+			<f:loadBundle var="project" basename="org.mxchange.localization.project" />
+
+			<h:outputStylesheet name="/css/default.css" />
+			<h:outputStylesheet name="/css/layout.css" />
+
+			<title>
+				<h:outputText value="#{initParam['project_title']} - " />
+
+				<ui:insert name="title">
+					<h:outputText value="Default document title" />
+				</ui:insert>
+			</title>
+		</h:head>
+
+		<h:body>
+			<pm:page id="master">
+				<h:panelGroup styleClass="ui-fluid" layout="block">
+					<pm:header>
+						<h:panelGroup layout="block">
+							<h:panelGroup styleClass="page-header" layout="block">
+								<h1>
+									<h:outputText value="#{initParam['project_title']} - " />
+
+									<ui:insert name="title">
+										<h:outputText value="Default header title" />
+									</ui:insert>
+								</h1>
+							</h:panelGroup>
+
+							<h:panelGroup styleClass="page-content-gap" layout="block">
+							</h:panelGroup>
+						</h:panelGroup>
+					</pm:header>
+
+					<h:panelGroup styleClass="ui-g" layout="block">
+						<h:panelGroup styleClass="ui-g-12 ui-md-2" layout="block">
+							<ui:insert name="menu">
+								<h:outputText value="Default menu" />
 							</ui:insert>
-						</h1>
-					</div>
-				</pm:header>
-
-				<h:panelGroup id="menu-content-wrapper" layout="block">
-					<div id="left-menu-container">
-						<ui:insert name="menu">
-							<h:outputText value="Default menu" />
-						</ui:insert>
-
-						<ui:include src="/WEB-INF/templates/widgets/locale_change_widget.tpl" />
-					</div>
-
-					<h:panelGroup id="content_outer" class="content-container" layout="block">
-						<div id="content-header">
-							<ui:insert name="content_header">
-								<h:outputText value="Default content header" />
-							</ui:insert>
-						</div>
 
-						<div id="content">
-							<ui:insert name="content">
-								<h:outputText value="Default content" />
+							<ui:include src="/WEB-INF/templates/widgets/locale_change_widget.tpl" />
+						</h:panelGroup>
+
+						<h:panelGroup styleClass="ui-g-12 ui-md-10 ui-g-nopad" layout="block">
+							<h:panelGroup styleClass="ui-g-12">
+								<h2>
+									<ui:insert name="content_header">
+										<h:outputText value="Default content header" />
+									</ui:insert>
+								</h2>
+							</h:panelGroup>
+
+							<h:panelGroup styleClass="ui-g-12 ui-g-nopad">
+								<ui:insert name="content">
+									<h:outputText value="Default content" />
+								</ui:insert>
+							</h:panelGroup>
+						</h:panelGroup>
+
+						<h:panelGroup styleClass="ui-g-12 page-footer" layout="block">
+							<ui:insert name="footer">
+								<h:outputText value="Default footer" />
 							</ui:insert>
-						</div>
+						</h:panelGroup>
 					</h:panelGroup>
-				</h:panelGroup>
 
-				<h:panelGroup id="page-footer" layout="block">
-					<ui:insert name="footer">
-						<h:outputText value="Default footer" />
-					</ui:insert>
-				</h:panelGroup>
-
-				<h:panelGroup styleClass="error-container" layout="block">
-					<p:growl autoUpdate="true" showDetail="true" sticky="true" />
-
-					<p:ajaxExceptionHandler type="javax.faces.application.ViewExpiredException"
-											update="exceptionDialog"
-											onexception="PF('exceptionDialog').show();" />
-
-					<p:dialog id="exceptionDialog" closable="true" closeOnEscape="true" header="Exception '#{pfExceptionHandler.type}' occured!" widgetVar="exceptionDialog"
-							  height="500px">
-						<div class="para">
-							<h:outputText value="#{msg.EXCEPTION_MESSAGE}:" />
-							<h:outputText value="#{pfExceptionHandler.message}" />
-						</div>
-
-						<div class="para">
-							<h:outputText value="#{msg.EXCEPTION_STACK_TRACE}:" />
-							<h:outputText value="#{pfExceptionHandler.formattedStackTrace}" escape="false" />
-						</div>
-
-						<div class="para">
-							<p:button onclick="window.location.href = document.location.href;"
-									  value="#{msg.RELOAD_PAGE}"
-									  rendered="#{pfExceptionHandler.type == 'javax.faces.application.ViewExpiredException'}" />
-						</div>
-					</p:dialog>
+					<h:panelGroup styleClass="error-container" layout="block">
+						<p:growl autoUpdate="true" showDetail="true" sticky="true" />
+
+						<p:ajaxExceptionHandler
+							type="javax.faces.application.ViewExpiredException"
+							update="exceptionDialog"
+							onexception="PF('exceptionDialog').show();"
+							/>
+
+						<p:dialog id="exceptionDialog" closable="true" closeOnEscape="true" header="Exception '#{pfExceptionHandler.type}' occured!" widgetVar="exceptionDialog"
+								  height="500px">
+							<div class="para">
+								<h:outputText value="#{msg.EXCEPTION_MESSAGE}:" />
+								<h:outputText value="#{pfExceptionHandler.message}" />
+							</div>
+
+							<div class="para">
+								<h:outputText value="#{msg.EXCEPTION_STACK_TRACE}:" />
+								<h:outputText value="#{pfExceptionHandler.formattedStackTrace}" escape="false" />
+							</div>
+
+							<div class="para">
+								<p:button onclick="window.location.href = document.location.href;"
+										  value="#{msg.RELOAD_PAGE}"
+										  rendered="#{pfExceptionHandler.type == 'javax.faces.application.ViewExpiredException'}" />
+							</div>
+						</p:dialog>
+					</h:panelGroup>
 				</h:panelGroup>
-			</h:body>
-		</f:view>
+			</pm:page>
+		</h:body>
 	</html>
 </ui:composition>
diff --git a/web/WEB-INF/templates/contact/form_contact_data.tpl b/web/WEB-INF/templates/contact/form_contact_data.tpl
index b945d350..f25b069e 100644
--- a/web/WEB-INF/templates/contact/form_contact_data.tpl
+++ b/web/WEB-INF/templates/contact/form_contact_data.tpl
@@ -17,7 +17,7 @@
 				<h:outputText value="#{msg.PERSONAL_DATA_LEGEND}" />
 			</legend>
 
-			<widgets:outputPersonalTitleTableRow targetController="#{contactController}" />
+			<widgets:outputPersonalTitleSelectionBox targetController="#{contactController}" />
 
 			<h:panelGroup styleClass="table-row" layout="block">
 				<div class="table-left-medium">
@@ -209,7 +209,7 @@
 				<p:message for="faxNumber" />
 			</h:panelGroup>
 
-			<widgets:outputMobileNumberTableRow targetController="#{contactController}" labelMessage="#{msg.PERSONAL_DATA_MOBILE_NUMBER}" />
+			<widgets:inputMobileNumberPanelGrid targetController="#{contactController}" labelMessage="#{msg.PERSONAL_DATA_MOBILE_NUMBER}" />
 		</fieldset>
 	</h:panelGroup>
 
diff --git a/web/WEB-INF/templates/guest/guest_footer.tpl b/web/WEB-INF/templates/guest/guest_footer.tpl
index 9b65b317..d4e92ffa 100644
--- a/web/WEB-INF/templates/guest/guest_footer.tpl
+++ b/web/WEB-INF/templates/guest/guest_footer.tpl
@@ -9,30 +9,30 @@
 	<div class="footer">
 		<ul class="navbar-horizontal">
 			<li class="navlink-horizontal">
-				<p:link outcome="index" title="#{msg.LINK_GUEST_HOME_TITLE}" value="#{msg.LINK_GUEST_HOME}" />
+				<p:link outcome="index" title="#{msg.GUEST_LINK_HOME_TITLE}" value="#{msg.GUEST_LINK_HOME}" />
 			</li>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('user_resend_confirmation_link')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="user_resend_link" title="#{msg.LINK_GUEST_RESEND_LINK_TITLE}" value="#{msg.LINK_GUEST_RESEND_LINK}" />
+					<p:link outcome="user_resend_link" title="#{msg.GUEST_LINK_RESEND_LINK_TITLE}" value="#{msg.GUEST_LINK_RESEND_LINK}" />
 				</li>
 			</ui:fragment>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('imprint')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="imprint" title="#{msg.LINK_GUEST_IMPRINT_TITLE}" value="#{msg.LINK_GUEST_IMPRINT}" />
+					<p:link outcome="imprint" title="#{msg.GUEST_LINK_IMPRINT_TITLE}" value="#{msg.GUEST_LINK_IMPRINT}" />
 				</li>
 			</ui:fragment>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('terms')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="terms" title="#{msg.LINK_GUEST_TERMS_TITLE}" value="#{msg.LINK_GUEST_TERMS}" />
+					<p:link outcome="terms" title="#{msg.GUEST_LINK_TERMS_TITLE}" value="#{msg.GUEST_LINK_TERMS}" />
 				</li>
 			</ui:fragment>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('privacy')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="privacy" title="#{msg.LINK_GUEST_PRIVACY_TITLE}" value="#{msg.LINK_GUEST_PRIVACY}" />
+					<p:link outcome="privacy" title="#{msg.GUEST_LINK_PRIVACY_TITLE}" value="#{msg.GUEST_LINK_PRIVACY}" />
 				</li>
 			</ui:fragment>
 
diff --git a/web/WEB-INF/templates/guest/guest_menu.tpl b/web/WEB-INF/templates/guest/guest_menu.tpl
index 90a009b4..4fad9677 100644
--- a/web/WEB-INF/templates/guest/guest_menu.tpl
+++ b/web/WEB-INF/templates/guest/guest_menu.tpl
@@ -14,7 +14,7 @@
 
 			<ul>
 				<li>
-					<p:link title="#{msg.LINK_GUEST_HOME_TITLE}" outcome="index" value="#{msg.LINK_GUEST_HOME}" />
+					<p:link title="#{msg.GUEST_LINK_HOME_TITLE}" outcome="index" value="#{msg.GUEST_LINK_HOME}" />
 				</li>
 			</ul>
 
@@ -25,25 +25,25 @@
 			<ul>
 				<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
 					<li>
-						<p:link title="#{msg.LINK_GUEST_LOGIN_TITLE}" outcome="user_login" value="#{msg.LINK_GUEST_LOGIN}" />
+						<p:link title="#{msg.GUEST_LOGIN_LINK_TITLE}" outcome="user_login" value="#{msg.GUEST_LINK_LOGIN}" />
 					</li>
 				</ui:fragment>
 
 				<ui:fragment rendered="#{featureController.isFeatureEnabled('user_registration')}">
 					<li>
-						<p:link title="#{msg.LINK_GUEST_REGISTER_TITLE}" outcome="user_register" value="#{msg.LINK_GUEST_REGISTER}" />
+						<p:link title="#{msg.GUEST_LINK_REGISTER_TITLE}" outcome="user_register" value="#{msg.GUEST_LINK_REGISTER}" />
 					</li>
 				</ui:fragment>
 
 				<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name') and featureController.isFeatureEnabled('user_password_recovery')}">
 					<li>
-						<p:link title="#{msg.LINK_GUEST_PASSWORD_TITLE}" outcome="user_lost_password" value="#{msg.LINK_GUEST_PASSWORD}" />
+						<p:link title="#{msg.GUEST_LINK_PASSWORD_TITLE}" outcome="user_lost_password" value="#{msg.GUEST_LINK_PASSWORD}" />
 					</li>
 				</ui:fragment>
 
 				<ui:fragment rendered="#{featureController.isFeatureEnabled('user_resend_confirmation_link')}">
 					<li>
-						<p:link title="#{msg.LINK_GUEST_RESEND_LINK_TITLE}" outcome="user_resend_link" value="#{msg.LINK_GUEST_RESEND_LINK}" />
+						<p:link title="#{msg.GUEST_LINK_RESEND_LINK_TITLE}" outcome="user_resend_link" value="#{msg.GUEST_LINK_RESEND_LINK}" />
 					</li>
 				</ui:fragment>
 			</ul>
diff --git a/web/WEB-INF/templates/guest/guest_privacy_terms.tpl b/web/WEB-INF/templates/guest/guest_privacy_terms.tpl
index 80e67acd..f7c93e66 100644
--- a/web/WEB-INF/templates/guest/guest_privacy_terms.tpl
+++ b/web/WEB-INF/templates/guest/guest_privacy_terms.tpl
@@ -23,7 +23,7 @@
 					<!-- @TODO Find something better //-->
 					<h:outputText value="#{msg.GUEST_AGREE_READ_PRIVACY_STATEMENT_1}" />
 					<h:outputText value="&#160;" />
-					<p:link outcome="privacy" target="_blank" value="#{msg.LINK_GUEST_PRIVACY_STATEMENTS}" />
+					<p:link outcome="privacy" target="_blank" value="#{msg.GUEST_LINK_PRIVACY_STATEMENTS}" />
 					<h:outputText value="#{msg.GUEST_AGREE_READ_PRIVACY_STATEMENT_2}" />
 				</div>
 			</h:panelGroup>
@@ -43,7 +43,7 @@
 					<!-- @TODO Find something better //-->
 					<h:outputText value="#{msg.GUEST_AGREE_READ_TERMS_CONDITIONS_1}" />
 					<h:outputText value="&#160;" />
-					<p:link outcome="terms" target="_blank" value="#{msg.LINK_GUEST_TERMS_CONDITIONS}" />
+					<p:link outcome="terms" target="_blank" value="#{msg.GUEST_LINK_TERMS_CONDITIONS}" />
 					<h:outputText value="#{msg.GUEST_AGREE_READ_TERMS_CONDITIONS_2}" />
 				</div>
 			</h:panelGroup>
diff --git a/web/WEB-INF/templates/guest/user/register/guest_form_register_page1.tpl b/web/WEB-INF/templates/guest/user/register/guest_form_register_page1.tpl
index eaa13ad3..392136e2 100644
--- a/web/WEB-INF/templates/guest/user/register/guest_form_register_page1.tpl
+++ b/web/WEB-INF/templates/guest/user/register/guest_form_register_page1.tpl
@@ -7,7 +7,7 @@
 	xmlns:p="http://primefaces.org/ui">
 
 	<h:form id="form_register_page1" rendered="#{featureController.isFeatureEnabled('user_registration')}">
-		<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:panelGroup styleClass="table table-full" layout="block">
 			<div class="table-header">
 				<h:outputText value="#{msg.GUEST_REGISTRATION_PAGE1_TITLE}" />
 			</div>
@@ -86,7 +86,7 @@
 
 			<div class="table-footer">
 				<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-				<p:commandButton styleClass="submit" type="submit" id="button_continue_register_page1" value="#{msg.BUTTON_CONTINUE_REGISTER_PAGE2}" action="#{userRegistrationController.doRegisterMultiPage1()}" />
+				<p:commandButton styleClass="submit" type="submit" id="submit_continue_register_page1" value="#{msg.BUTTON_CONTINUE_REGISTER_PAGE2}" action="#{userRegistrationController.doRegisterMultiPage1()}" />
 			</div>
 		</h:panelGroup>
 	</h:form>
diff --git a/web/WEB-INF/templates/guest/user/register/guest_form_register_single.tpl b/web/WEB-INF/templates/guest/user/register/guest_form_register_single.tpl
index 312208e1..711fd8fa 100644
--- a/web/WEB-INF/templates/guest/user/register/guest_form_register_single.tpl
+++ b/web/WEB-INF/templates/guest/user/register/guest_form_register_single.tpl
@@ -7,7 +7,7 @@
 	xmlns:p="http://primefaces.org/ui">
 
 	<h:form id="form_register_single" rendered="#{featureController.isFeatureEnabled('user_registration')}">
-		<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:panelGroup styleClass="table table-full" layout="block">
 			<div class="table-header">
 				<h:outputText value="#{msg.GUEST_REGISTRATION_TITLE}" />
 			</div>
@@ -90,7 +90,7 @@
 
 			<div class="table-footer">
 				<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-				<p:commandButton styleClass="submit" type="submit" id="button_finish_registration_single" value="#{msg.BUTTON_FINISH_REGISTRATION}" action="#{userRegistrationController.doFinishRegistration()}" />
+				<p:commandButton styleClass="submit" type="submit" id="submit_finish_registration_single" value="#{msg.BUTTON_FINISH_REGISTRATION}" action="#{userRegistrationController.doFinishRegistration()}" />
 			</div>
 		</h:panelGroup>
 	</h:form>
diff --git a/web/WEB-INF/templates/login/user/user_footer.tpl b/web/WEB-INF/templates/login/user/user_footer.tpl
index 88814c25..667776e8 100644
--- a/web/WEB-INF/templates/login/user/user_footer.tpl
+++ b/web/WEB-INF/templates/login/user/user_footer.tpl
@@ -9,24 +9,24 @@
 	<div class="footer">
 		<ul class="navbar-horizontal">
 			<li class="navlink-horizontal">
-				<p:link outcome="login_index" title="#{msg.LINK_LOGIN_HOME_TITLE}" value="#{msg.LINK_LOGIN_HOME}" />
+				<p:link outcome="login_index" title="#{msg.LOGIN_LINK_HOME_TITLE}" value="#{msg.LOGIN_LINK_HOME}" />
 			</li>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('imprint')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="imprint" title="#{msg.LINK_GUEST_IMPRINT_TITLE}" value="#{msg.LINK_GUEST_IMPRINT}" />
+					<p:link outcome="imprint" title="#{msg.GUEST_LINK_IMPRINT_TITLE}" value="#{msg.GUEST_LINK_IMPRINT}" />
 				</li>
 			</ui:fragment>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('terms')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="terms" title="#{msg.LINK_GUEST_TERMS_TITLE}" value="#{msg.LINK_GUEST_TERMS}" />
+					<p:link outcome="terms" title="#{msg.GUEST_LINK_TERMS_TITLE}" value="#{msg.GUEST_LINK_TERMS}" />
 				</li>
 			</ui:fragment>
 
 			<ui:fragment rendered="#{featureController.isFeatureEnabled('privacy')}">
 				<li class="navlink-horizontal">
-					<p:link outcome="privacy" title="#{msg.LINK_GUEST_PRIVACY_TITLE}" value="#{msg.LINK_GUEST_PRIVACY}" />
+					<p:link outcome="privacy" title="#{msg.GUEST_LINK_PRIVACY_TITLE}" value="#{msg.GUEST_LINK_PRIVACY}" />
 				</li>
 			</ui:fragment>
 
diff --git a/web/WEB-INF/templates/login/user/user_menu.tpl b/web/WEB-INF/templates/login/user/user_menu.tpl
index b29e1adb..06e0c593 100644
--- a/web/WEB-INF/templates/login/user/user_menu.tpl
+++ b/web/WEB-INF/templates/login/user/user_menu.tpl
@@ -14,7 +14,7 @@
 
 			<ul>
 				<li>
-					<p:link title="#{msg.LINK_LOGIN_HOME_TITLE}" outcome="user_index" value="#{msg.LINK_LOGIN_HOME}" />
+					<p:link title="#{msg.LOGIN_LINK_HOME_TITLE}" outcome="user_index" value="#{msg.LOGIN_LINK_HOME}" />
 				</li>
 
 				<li>
@@ -36,19 +36,19 @@
 				<ul>
 					<ui:fragment rendered="#{featureController.isFeatureEnabled('change_user_personal_data')}">
 						<li>
-							<p:link title="#{msg.LINK_LOGIN_CHANGE_PERSONAL_DATA_TITLE}" outcome="login_change_personal_data" value="#{msg.LINK_LOGIN_CHANGE_PERSONAL_DATA}" />
+							<p:link title="#{msg.LOGIN_LINK_CHANGE_PERSONAL_DATA_TITLE}" outcome="login_change_personal_data" value="#{msg.LOGIN_LINK_CHANGE_PERSONAL_DATA}" />
 						</li>
 					</ui:fragment>
 
 					<ui:fragment rendered="#{featureController.isFeatureEnabled('user_change_email_address')}">
 						<li>
-							<p:link title="#{msg.LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS_TITLE}" outcome="login_change_email_address" value="#{msg.LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS}" />
+							<p:link title="#{msg.LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS_TITLE}" outcome="login_change_email_address" value="#{msg.LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS}" />
 						</li>
 					</ui:fragment>
 
 					<ui:fragment rendered="#{userLoginController.ifUserMustChangePassword() or featureController.isFeatureEnabled('change_user_password')}">
 						<li>
-							<p:link title="#{msg.LINK_LOGIN_CHANGE_PASSWORD_TITLE}" outcome="user_change_password" value="#{msg.LINK_LOGIN_CHANGE_PASSWORD}" />
+							<p:link title="#{msg.LOGIN_LINK_CHANGE_PASSWORD_TITLE}" outcome="user_change_password" value="#{msg.LOGIN_LINK_CHANGE_PASSWORD}" />
 						</li>
 					</ui:fragment>
 				</ul>
@@ -60,7 +60,7 @@
 
 			<ul>
 				<li>
-					<p:link title="#{msg.LINK_LOGIN_ALL_APPLICATIONS_TITLE}" outcome="user_all_applications" value="#{msg.LINK_LOGIN_ALL_APPLICATIONS}" />
+					<p:link title="#{msg.LOGIN_LINK_ALL_APPLICATIONS_TITLE}" outcome="user_all_applications" value="#{msg.LOGIN_LINK_ALL_APPLICATIONS}" />
 				</li>
 			</ul>
 
@@ -70,7 +70,7 @@
 
 			<ul>
 				<li>
-					<p:link title="#{msg.LINK_GUEST_HOME_TITLE}" outcome="index" value="#{msg.LINK_GUEST_HOME}" />
+					<p:link title="#{msg.GUEST_LINK_HOME_TITLE}" outcome="index" value="#{msg.GUEST_LINK_HOME}" />
 				</li>
 
 				<li>
diff --git a/web/WEB-INF/templates/widgets/locale_change_widget.tpl b/web/WEB-INF/templates/widgets/locale_change_widget.tpl
index e883f74d..29130530 100644
--- a/web/WEB-INF/templates/widgets/locale_change_widget.tpl
+++ b/web/WEB-INF/templates/widgets/locale_change_widget.tpl
@@ -6,8 +6,8 @@
 	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 	xmlns:p="http://primefaces.org/ui">
 
-	<h:form>
-		<h:panelGroup layout="block" styleClass="locale_selection_container">
+	<h:form id="form-change-locale">
+		<p:panelGrid columns="2" layout="grid">
 			<h:panelGroup layout="block">
 				<p:selectOneMenu value="#{localizationController.localeCode}" onchange="submit()">
 					<f:selectItem itemLabel="#{msg.SELECT_LANGUAGE}" noSelectionOption="true" itemDisabled="true" />
@@ -16,6 +16,6 @@
 			</h:panelGroup>
 
 			<p:commandButton styleClass="submit" type="submit" actionListener="#{localizationController.doChangeLocale()}" value="#{msg.BUTTON_CHANGE_LOCALE}" title="#{msg.BUTTON_CHANGE_LOCALE_TITLE}" />
-		</h:panelGroup>
+		</p:panelGrid>
 	</h:form>
 </ui:composition>
diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml
index b05f1338..6374a5b1 100644
--- a/web/WEB-INF/web.xml
+++ b/web/WEB-INF/web.xml
@@ -13,19 +13,19 @@
         <param-value>bootstrap</param-value>
     </context-param>
     <context-param>
-        <description>Refresh perioid</description>
+        <description>Refresh perioid of facelets.</description>
         <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
         <param-value>-1</param-value>
     </context-param>
     <context-param>
         <description>State saving method</description>
         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
-        <param-value>client</param-value>
+        <param-value>server</param-value>
     </context-param>
     <context-param>
         <description>Development mode for WELD, keep disabled unless really needed. Currently it messes up the website.</description>
         <param-name>org.jboss.weld.development</param-name>
-        <param-value>false</param-value>
+        <param-value>true</param-value>
     </context-param>
     <context-param>
         <description>Generic custom JSF tags library</description>
@@ -133,7 +133,7 @@
         <param-value>false</param-value>
     </context-param>
     <context-param>
-        <description>Whether user can leave both passwords empty on registration.</description>
+        <description>Whether user can leave both passwords empty on registration. Then a random password will be created.</description>
         <param-name>is_feature_allow_user_registration_empty_password_enabled</param-name>
         <param-value>false</param-value>
     </context-param>
@@ -142,6 +142,11 @@
         <param-name>is_feature_basic_company_data_enabled</param-name>
         <param-value>true</param-value>
     </context-param>
+    <context-param>
+        <description>Whether company employees are used in this project. Maybe used in conjuction with business contacts only.</description>
+        <param-name>is_feature_company_employee_enabled</param-name>
+        <param-value>true</param-value>
+    </context-param>
     <context-param>
         <description>Maximum passwords that must be different.</description>
         <param-name>max_user_password_history</param-name>
diff --git a/web/WEB-INF/widgets.jsf.taglib.xml b/web/WEB-INF/widgets.jsf.taglib.xml
index 9860efe3..8fa3bebe 100644
--- a/web/WEB-INF/widgets.jsf.taglib.xml
+++ b/web/WEB-INF/widgets.jsf.taglib.xml
@@ -61,9 +61,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 		<source>resources/tags/admin/columns/admin_contact_data_columns.tpl</source>
 	</tag>
 	<tag>
-		<tag-name>outputPersonalTitleTableRow</tag-name>
+		<tag-name>outputPersonalTitleSelectionBox</tag-name>
 		<description>This tag renders a selection box for user contact's personal title (Mr./Mrs.).</description>
-		<source>resources/tags/table_rows/user_personal_title_table_row.tpl</source>
+		<source>resources/tags/input/selection_box/personal_title_selection_box.tpl</source>
 		<attribute>
 			<name>allowEmptyRequiredData</name>
 			<description>Whether allow the personal title to be left empty. This might be the case when you create a user and want to select a contact from a selection box. EL code resolving to a boolean may be allowed here.</description>
@@ -84,31 +84,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
 		</attribute>
 	</tag>
-	<tag>
-		<tag-name>outputMobileNumberTableRow</tag-name>
-		<description>This tag renders a selection box for contact's personal title (Mr./Mrs.).</description>
-		<source>resources/tags/table_rows/mobile_selection_table_row.tpl</source>
-		<attribute>
-			<name>labelMessage</name>
-			<description>A localized message for the rendered label tag. You should use EL code here to add a label message from your bundle.</description>
-			<required>true</required>
-			<!-- @TODO Find an interface for BaseFacesBean and set it here instead -->
-			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
-		</attribute>
-		<attribute>
-			<name>rendered</name>
-			<description>Whether this tag is being rendered by JSF engine (default: true).</description>
-			<required>false</required>
-			<type>java.lang.Boolean</type>
-		</attribute>
-		<attribute>
-			<name>targetController</name>
-			<description>A target backing bean (EL code resolving into it) extending at least BaseFacesBean where to set the data in.</description>
-			<required>true</required>
-			<!-- @TODO Find an interface for BaseFacesBean and set it here instead -->
-			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
-		</attribute>
-	</tag>
 	<tag>
 		<tag-name>outputProfileModeTableRow</tag-name>
 		<description>This tag renders a selection box for user's profile mode.</description>
@@ -214,7 +189,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 	</tag>
 	<tag>
 		<tag-name>outputAdminFaxPanelGrid</tag-name>
-		<description>This tag renders a full h:panelGrid for administrative purposes for fax data.</description>
+		<description>This tag renders a full p:panelGrid for administrative purposes for fax data.</description>
 		<source>resources/tags/admin/panel_grids/fax/admin_fax_data.tpl</source>
 		<attribute>
 			<name>renderShowLink</name>
@@ -249,7 +224,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 	</tag>
 	<tag>
 		<tag-name>outputAdminLandLinePanelGrid</tag-name>
-		<description>This tag renders a full h:panelGrid for administrative purposes for land-line data.</description>
+		<description>This tag renders a full p:panelGrid for administrative purposes for land-line data.</description>
 		<source>resources/tags/admin/panel_grids/landline/admin_landline_data.tpl</source>
 		<attribute>
 			<name>renderShowLink</name>
@@ -284,7 +259,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 	</tag>
 	<tag>
 		<tag-name>outputAdminMobilePanelGrid</tag-name>
-		<description>This tag renders a full h:panelGrid for administrative purposes for mobile data.</description>
+		<description>This tag renders a full p:panelGrid for administrative purposes for mobile data.</description>
 		<source>resources/tags/admin/panel_grids/mobile/admin_mobile_data.tpl</source>
 		<attribute>
 			<name>renderShowLink</name>
@@ -412,4 +387,58 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 			<type>org.mxchange.jcountry.model.data.Country</type>
 		</attribute>
 	</tag>
+	<tag>
+		<tag-name>inputFaxNumberPanelGrid</tag-name>
+		<description>This tag renders input fields for creating a fax number.</description>
+		<source>resources/tags/input/panel_grid/fax_input_panel_grid.tpl</source>
+		<attribute>
+			<name>rendered</name>
+			<description>Whether this tag is being rendered by JSF engine (default: true).</description>
+			<required>false</required>
+			<type>java.lang.Boolean</type>
+		</attribute>
+		<attribute>
+			<name>targetController</name>
+			<description>A target backing bean (EL code resolving into it) extending at least BaseFacesBean where to set the data in.</description>
+			<required>true</required>
+			<!-- @TODO Find an interface for BaseFacesBean and set it here instead -->
+			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
+		</attribute>
+	</tag>
+	<tag>
+		<tag-name>inputLandLineNumberPanelGrid</tag-name>
+		<description>This tag renders input fields for creating a land-line number.</description>
+		<source>resources/tags/input/panel_grid/landline_input_panel_grid.tpl</source>
+		<attribute>
+			<name>rendered</name>
+			<description>Whether this tag is being rendered by JSF engine (default: true).</description>
+			<required>false</required>
+			<type>java.lang.Boolean</type>
+		</attribute>
+		<attribute>
+			<name>targetController</name>
+			<description>A target backing bean (EL code resolving into it) extending at least BaseFacesBean where to set the data in.</description>
+			<required>true</required>
+			<!-- @TODO Find an interface for BaseFacesBean and set it here instead -->
+			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
+		</attribute>
+	</tag>
+	<tag>
+		<tag-name>inputMobileNumberPanelGrid</tag-name>
+		<description>This tag renders input fields for creating a mobile number.</description>
+		<source>resources/tags/input/panel_grid/mobile_input_panel_grid.tpl</source>
+		<attribute>
+			<name>rendered</name>
+			<description>Whether this tag is being rendered by JSF engine (default: true).</description>
+			<required>false</required>
+			<type>java.lang.Boolean</type>
+		</attribute>
+		<attribute>
+			<name>targetController</name>
+			<description>A target backing bean (EL code resolving into it) extending at least BaseFacesBean where to set the data in.</description>
+			<required>true</required>
+			<!-- @TODO Find an interface for BaseFacesBean and set it here instead -->
+			<type>org.mxchange.jcoreee.bean.faces.BaseFacesBean</type>
+		</attribute>
+	</tag>
 </facelet-taglib>
diff --git a/web/admin/admin_logout.xhtml b/web/admin/admin_logout.xhtml
index 7393774d..f4500ba1 100644
--- a/web/admin/admin_logout.xhtml
+++ b/web/admin/admin_logout.xhtml
@@ -15,7 +15,7 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<h:form id="form_admin_logout">
+		<h:form id="form-admin-logout">
 			<h:panelGroup styleClass="table" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_LOGOUT_TITLE}" />
diff --git a/web/admin/basic_company_data/admin_basic_company_data_list.xhtml b/web/admin/basic_company_data/admin_basic_company_data_list.xhtml
index 82ea659d..9ae28c2d 100644
--- a/web/admin/basic_company_data/admin_basic_company_data_list.xhtml
+++ b/web/admin/basic_company_data/admin_basic_company_data_list.xhtml
@@ -17,107 +17,132 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<p:dataTable id="table_list_basic_company_data" var="basicData" value="#{basicDataController.allCompanyBasicData()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA}" emptyMessage="#{msg.ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY}">
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_ID}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_basic_data" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE}" value="#{basicData.basicDataId}">
-					<f:param name="basicDataId" value="#{basicData.basicDataId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ASSIGNED_USER}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_OWNER_USER_TITLE}" value="#{basicData.companyUserOwner.userId}" rendered="#{not empty basicData.companyUserOwner}">
-					<f:param name="userId" value="#{basicData.companyUserOwner.userId}" />
-				</p:link>
-
-				<p:link outcome="admin_assign_basic_company_data_owner" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty basicData.companyUserOwner}">
-					<f:param name="basicDataId" value="#{basicData.basicDataId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" />
-				</f:facet>
-
-				<h:outputLink value="#{basicData.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty basicData.companyWebsiteUrl}">
-					<h:outputText value="#{basicData.companyName}" />
-				</h:outputLink>
-
-				<h:outputText value="#{basicData.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty basicData.companyWebsiteUrl}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_PERSON}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{basicData.companyContactEmployee.employeeId}" rendered="#{not empty basicData.companyContactEmployee}">
-					<f:param name="employeeId" value="#{basicData.companyContactEmployee.employeeId}" />
-				</p:link>
-
-				<p:link outcome="admin_assign_basic_company_data_employee" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON}" rendered="#{empty basicData.companyContactEmployee}">
-					<f:param name="basicDataId" value="#{basicData.basicDataId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_FOUNDER}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{basicData.companyFounder.employeeId}" rendered="#{not empty basicData.companyFounder}">
-					<f:param name="employeeId" value="#{basicData.companyFounder.employeeId}" />
-				</p:link>
-
-				<p:link outcome="admin_assign_basic_company_data_contact" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty basicData.companyFounder}">
-					<f:param name="basicDataId" value="#{basicData.basicDataId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_CREATED}" />
-				</f:facet>
-
-				<h:outputText id="companyCreated" value="#{basicData.companyCreated.time}">
-					<f:convertDateTime for="companyCreated" type="both" timeStyle="short" dateStyle="short" />
-				</h:outputText>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
-				</f:facet>
-
-				<links:outputBasicDataAdminMiniLinks basicData="#{basicData}" />
-			</p:column>
-		</p:dataTable>
-
-		<h:form id="form_admin_add_basic_company_data">
-			<h:panelGroup styleClass="table table-medium" layout="block">
-				<div class="table-header">
-					<h:outputText value="#{msg.ADMIN_ADD_BASIC_COMPANY_DATA_TITLE}" />
-				</div>
-
-				<div class="para">
+		<h:form id="form-list-basic-company-data">
+			<p:dataTable
+				id="table-list-basic-company-data"
+				var="basicData"
+				value="#{basicCompanyDataController.allCompanyBasicData()}"
+				tableStyleClass="table table-full"
+				paginator="true"
+				rows="10"
+				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA}"
+				emptyMessage="#{msg.ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY}"
+				widgetVar="basicDataList"
+				>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_ID}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_basic_data" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE}" value="#{basicData.basicDataId}">
+						<f:param name="basicDataId" value="#{basicData.basicDataId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ASSIGNED_USER}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_OWNER_USER_TITLE}" value="#{basicData.companyUserOwner.userId}" rendered="#{not empty basicData.companyUserOwner}">
+						<f:param name="userId" value="#{basicData.companyUserOwner.userId}" />
+					</p:link>
+
+					<p:link outcome="admin_assign_basic_company_data_owner" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty basicData.companyUserOwner}">
+						<f:param name="basicDataId" value="#{basicData.basicDataId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" />
+					</f:facet>
+
+					<h:outputLink value="#{basicData.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty basicData.companyWebsiteUrl}">
+						<h:outputText value="#{basicData.companyName}" />
+					</h:outputLink>
+
+					<h:outputText value="#{basicData.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty basicData.companyWebsiteUrl}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_PERSON}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{basicData.companyContactEmployee.employeeId}" rendered="#{not empty basicData.companyContactEmployee}">
+						<f:param name="employeeId" value="#{basicData.companyContactEmployee.employeeId}" />
+					</p:link>
+
+					<p:link outcome="admin_assign_basic_company_data_employee" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_CONTACT_PERSON}" rendered="#{empty basicData.companyContactEmployee}">
+						<f:param name="basicDataId" value="#{basicData.basicDataId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_FOUNDER}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{basicData.companyFounder.employeeId}" rendered="#{not empty basicData.companyFounder}">
+						<f:param name="employeeId" value="#{basicData.companyFounder.employeeId}" />
+					</p:link>
+
+					<p:link outcome="admin_assign_basic_company_data_contact" title="#{msg.ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty basicData.companyFounder}">
+						<f:param name="basicDataId" value="#{basicData.basicDataId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_BASIC_COMPANY_DATA_CREATED}" />
+					</f:facet>
+
+					<h:outputText id="companyCreated" value="#{basicData.companyCreated.time}">
+						<f:convertDateTime for="companyCreated" type="both" timeStyle="short" dateStyle="short" />
+					</h:outputText>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
+					</f:facet>
+
+					<links:outputBasicDataAdminMiniLinks basicData="#{basicData}" />
+				</p:column>
+			</p:dataTable>
+		</h:form>
+
+		<h:form id="form-admin-add-basic-company-data">
+			<p:panelGrid columns="1" styleClass="table table-full" layout="grid">
+				<h:panelGroup styleClass="table-header" layout="block">
+					<h4>
+						<h:outputText value="#{msg.ADMIN_ADD_BASIC_COMPANY_DATA_TITLE}" />
+					</h4>
+				</h:panelGroup>
+
+				<h:panelGroup styleClass="para" layout="block">
 					<h:outputText value="#{msg.ADMIN_ADD_BASIC_COMPANY_DATA_MINIMUM_DATA}" />
-				</div>
+				</h:panelGroup>
 
 				<ui:include src="/WEB-INF/templates/admin/basic_company_data/admin_form_basic_company_data.tpl" />
 
-				<div class="table-footer">
-					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_basic_company_data" value="#{msg.BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON}" action="#{adminCompanyDataController.addBusinessBasicData()}" />
-				</div>
-			</h:panelGroup>
+				<p:panelGrid columns="2" styleClass="table-footer" layout="grid">
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_BASIC_COMPANY_DATA}"
+						action="#{adminBasicCompanyDataController.addBusinessBasicData()}"
+						update=":master:form-list-basic-company-data:table-list-basic-company-data"
+						/>
+				</p:panelGrid>
+			</p:panelGrid>
 		</h:form>
 	</ui:define>
 </ui:composition>
diff --git a/web/admin/branch_offices/admin_branch_offices_list.xhtml b/web/admin/branch_office/admin_branch_office_list.xhtml
similarity index 86%
rename from web/admin/branch_offices/admin_branch_offices_list.xhtml
rename to web/admin/branch_office/admin_branch_office_list.xhtml
index 83d55047..9c91c184 100644
--- a/web/admin/branch_offices/admin_branch_offices_list.xhtml
+++ b/web/admin/branch_office/admin_branch_office_list.xhtml
@@ -34,6 +34,7 @@
 				sortMode="multiple"
 				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BRANCH_OFFICES}"
 				emptyMessage="#{msg.ADMIN_BRANCH_OFFICES_LIST_EMPTY}"
+				widgetVar="branchOfficeList"
 				>
 
 				<f:facet name="header">
@@ -50,7 +51,7 @@
 
 				<p:column headerText="#{msg.ADMIN_ASSIGNED_USER}" sortBy="#{branchOffice.branchUserOwner.userName}" filterBy="#{branchOffice.branchUserOwner}" filterMatchMode="in">
 					<f:facet name="filter">
-						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USER_TITLE}">
+						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USERS_TITLE}">
 							<f:converter converterId="UserConverter" />
 							<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
 							<f:selectItems value="#{userController.allUsers()}" var="user" itemValue="#{user}" itemLabel="#{user.userName}" />
@@ -70,7 +71,7 @@
 					<f:facet name="filter">
 						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANIES}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}">
 							<f:converter converterId="BasicCompanyDataConverter" />
-							<f:selectItems value="#{basicDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+							<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
 						</p:selectCheckboxMenu>
 					</f:facet>
 
@@ -121,23 +122,36 @@
 			</p:dataTable>
 		</h:form>
 
-		<h:form id="form_admin_add_branch_office">
-			<h:panelGroup styleClass="table table-medium" layout="block">
-				<div class="table-header">
-					<h:outputText value="#{msg.ADMIN_ADD_BRANCH_OFFICE_TITLE}" />
-				</div>
+		<h:form id="form-admin-add-branch-office">
+			<p:panelGrid columns="1" styleClass="table table-full" layout="grid">
+				<h:panelGroup styleClass="table-header" layout="block">
+					<h4>
+						<h:outputText value="#{msg.ADMIN_ADD_BRANCH_OFFICE_TITLE}" />
+					</h4>
+				</h:panelGroup>
 
-				<div class="para">
+				<h:panelGroup styleClass="para" layout="block">
 					<h:outputText value="#{msg.ADMIN_ADD_BRANCH_OFFICE_MINIMUM_DATA}" />
-				</div>
-
-				<ui:include src="/WEB-INF/templates/admin/branch_offices/admin_form_branch_offices_data.tpl" />
-
-				<div class="table-footer">
-					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_branch_office" value="#{msg.BUTTON_ADMIN_CONTINUE_BUSINESS_CONTACT_PERSON}" action="#{adminBranchOfficeController.addBranchOffice()}" />
-				</div>
-			</h:panelGroup>
+				</h:panelGroup>
+
+				<ui:include src="/WEB-INF/templates/admin/branch_office/admin_form_branch_office_data.tpl" />
+
+				<p:panelGrid columns="2" styleClass="table-footer" layout="block">
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_BASIC_COMPANY_DATA}"
+						action="#{adminBranchOfficeController.addBranchOffice()}"
+						update=":master:form-list-branch-offices:table-list-branch-offices"
+						/>
+				</p:panelGrid>
+			</p:panelGrid>
 		</h:form>
 	</ui:define>
 </ui:composition>
diff --git a/web/admin/contact/admin_contact_delete.xhtml b/web/admin/contact/admin_contact_delete.xhtml
index fef9073c..13dc4a0a 100644
--- a/web/admin/contact/admin_contact_delete.xhtml
+++ b/web/admin/contact/admin_contact_delete.xhtml
@@ -25,7 +25,7 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
-		<h:form id="form_admin_edit_user" rendered="#{not empty beanHelper.contact}">
+		<h:form id="form-admin-delete-user" rendered="#{not empty beanHelper.contact}">
 			<h:panelGroup styleClass="table" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_DELETE_CONTACT_TITLE}">
@@ -41,7 +41,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="button-danger" type="submit" id="button_delete_contact" value="#{msg.BUTTON_ADMIN_DELETE_CONTACT}" action="#{adminContactController.deleteContactData()}" />
+					<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_contact" value="#{msg.BUTTON_ADMIN_DELETE_CONTACT}" action="#{adminContactController.deleteContactData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/contact/admin_contact_edit.xhtml b/web/admin/contact/admin_contact_edit.xhtml
index efa24b54..f441f10c 100644
--- a/web/admin/contact/admin_contact_edit.xhtml
+++ b/web/admin/contact/admin_contact_edit.xhtml
@@ -25,8 +25,8 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-handler-contact" message="#{msg.ERROR_CONTACT_ID_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.contact}" />
 
-		<h:form id="form_admin_edit_user" rendered="#{not empty beanHelper.contact}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-admin-edit-user" rendered="#{not empty beanHelper.contact}">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_EDIT_CONTACT_TITLE}">
 						<f:param value="#{beanHelper.contact.contactId}" />
@@ -41,7 +41,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_edit_contact" value="#{msg.BUTTON_ADMIN_EDIT_CONTACT}" action="#{adminContactController.editContactData()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_edit_contact" value="#{msg.BUTTON_ADMIN_EDIT_CONTACT}" action="#{adminContactController.editContactData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/contact/admin_contact_export.xhtml b/web/admin/contact/admin_contact_export.xhtml
index e534c5a7..93266aef 100644
--- a/web/admin/contact/admin_contact_export.xhtml
+++ b/web/admin/contact/admin_contact_export.xhtml
@@ -153,7 +153,7 @@
 				</p:column>
 			</p:dataTable>
 
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_EXPORT_CONTACTS_TITLE}" />
 				</div>
@@ -163,7 +163,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="submit" type="submit" id="button_export_contacts_xls" value="#{msg.BUTTON_ADMIN_EXPORT_CONTACTS_XLS}">
+					<p:commandButton styleClass="submit" type="submit" id="submit_export_contacts_xls" value="#{msg.BUTTON_ADMIN_EXPORT_CONTACTS_XLS}">
 						<p:dataExporter type="xls" target="table_export_contacts" fileName="all_contacts" />
 					</p:commandButton>
 				</div>
diff --git a/web/admin/contact/admin_contact_list.xhtml b/web/admin/contact/admin_contact_list.xhtml
index 855fdc21..589df6b6 100644
--- a/web/admin/contact/admin_contact_list.xhtml
+++ b/web/admin/contact/admin_contact_list.xhtml
@@ -17,85 +17,105 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<p:dataTable id="table_list_contacts" var="contact" value="#{contactController.allContacts()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_CONTACT}" emptyMessage="#{msg.ADMIN_CONTACT_LIST_EMPTY}">
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_ID}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_contact" title="#{msg.ADMIN_LINK_SHOW_CONTACT_DATA_TITLE}" value="#{contact.contactId}">
-					<f:param name="contactId" value="#{contact.contactId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" />
-				</f:facet>
-
-				<h:outputText value="#{msg[contact.contactPersonalTitle.messageKey]}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
-				</f:facet>
-
-				<h:outputText value="#{contact.contactFirstName}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
-				</f:facet>
-
-				<h:outputText value="#{contact.contactFamilyName}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_USAGE}" />
-				</f:facet>
-
-				<h:outputText value="#{msg[beanHelper.getContactUsageMessageKey(contact)]}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_LIST_ENTRY_CREATED}" />
-				</f:facet>
-
-				<h:outputText id="contactCreated" value="#{contact.contactCreated.time}">
-					<f:convertDateTime for="contactCreated" type="both" timeStyle="short" dateStyle="short" />
-				</h:outputText>
-			</p:column>
+		<h:form id="form-list-contacts">
+			<p:dataTable
+				id="table-list-contacts"
+				var="contact"
+				value="#{contactController.allContacts()}"
+				tableStyleClass="table table-full"
+				paginator="true"
+				rows="10"
+				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_CONTACT}"
+				emptyMessage="#{msg.ADMIN_CONTACT_LIST_EMPTY}"
+				widgetVar="contactList"
+				>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_ID}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_contact" title="#{msg.ADMIN_LINK_SHOW_CONTACT_DATA_TITLE}" value="#{contact.contactId}">
+						<f:param name="contactId" value="#{contact.contactId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" />
+					</f:facet>
+
+					<h:outputText value="#{msg[contact.contactPersonalTitle.messageKey]}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
+					</f:facet>
+
+					<h:outputText value="#{contact.contactFirstName}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
+					</f:facet>
+
+					<h:outputText value="#{contact.contactFamilyName}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_USAGE}" />
+					</f:facet>
+
+					<h:outputText value="#{msg[beanHelper.getContactUsageMessageKey(contact)]}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_LIST_ENTRY_CREATED}" />
+					</f:facet>
+
+					<h:outputText id="contactCreated" value="#{contact.contactCreated.time}">
+						<f:convertDateTime for="contactCreated" type="both" timeStyle="short" dateStyle="short" />
+					</h:outputText>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
+					</f:facet>
+
+					<links:outputContactAdminMiniLinks contact="#{contact}" />
+				</p:column>
+			</p:dataTable>
+		</h:form>
 
-			<p:column>
+		<h:form id="form-admin-add-contact">
+			<p:panelGrid layout="grid" columns="1" styleClass="table table-full">
 				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
-				</f:facet>
-
-				<links:outputContactAdminMiniLinks contact="#{contact}" />
-			</p:column>
-		</p:dataTable>
-
-		<h:form id="form_admin_add_contact">
-			<h:panelGroup styleClass="table table-medium" layout="block">
-				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_ADD_CONTACT_TITLE}" />
-				</div>
+				</f:facet>
 
-				<div class="para">
-					<h:outputText value="#{msg.ADMIN_ADD_CONTACT_MINIMUM_DATA}" />
-				</div>
+				<h:outputText value="#{msg.ADMIN_ADD_CONTACT_MINIMUM_DATA}" />
 
 				<widgets:outputAdminContactDataFormFields />
 
-				<div class="table-footer">
-					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_contact" value="#{msg.BUTTON_ADMIN_ADD_CONTACT}" action="#{adminContactController.addContact()}" />
-				</div>
-			</h:panelGroup>
+				<f:facet name="footer">
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_CONTACT}"
+						action="#{adminContactController.addContact()}"
+						update=":master:form-list-contacts:table-list-contacts"
+						/>
+				</f:facet>
+			</p:panelGrid>
 		</h:form>
 	</ui:define>
 </ui:composition>
diff --git a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
index 6dd9cb18..4ff90cb0 100644
--- a/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_fax_unlink.xhtml
@@ -50,7 +50,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-warning" type="submit" id="button_unlink_fax" value="#{msg.BUTTON_ADMIN_UNLINK_FAX_NUMBER}" action="#{adminContactPhoneController.unlinkFaxContactData()}" />
+					<p:commandButton styleClass="button-warning" type="submit" id="submit_unlink_fax" value="#{msg.BUTTON_ADMIN_UNLINK_FAX_NUMBER}" action="#{adminContactPhoneController.unlinkFaxContactData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
index 9848232e..9bfdc30e 100644
--- a/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_landline_unlink.xhtml
@@ -48,7 +48,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-warning" type="submit" id="button_unlink_landline" value="#{msg.BUTTON_ADMIN_UNLINK_LAND_LINE_NUMBER}" action="#{adminContactPhoneController.unlinkLandLineContactData()}" />
+					<p:commandButton styleClass="button-warning" type="submit" id="submit_unlink_landline" value="#{msg.BUTTON_ADMIN_UNLINK_LAND_LINE_NUMBER}" action="#{adminContactPhoneController.unlinkLandLineContactData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
index a06815a0..e424bcd0 100644
--- a/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
+++ b/web/admin/contact/unlink/admin_contact_mobile_unlink.xhtml
@@ -48,7 +48,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-warning" type="submit" id="button_unlink_mobile" value="#{msg.BUTTON_ADMIN_UNLINK_MOBILE_NUMBER}" action="#{adminContactPhoneController.unlinkMobileContactData()}" />
+					<p:commandButton styleClass="button-warning" type="submit" id="submit_unlink_mobile" value="#{msg.BUTTON_ADMIN_UNLINK_MOBILE_NUMBER}" action="#{adminContactPhoneController.unlinkMobileContactData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/country/admin_country_list.xhtml b/web/admin/country/admin_country_list.xhtml
index 2de78e11..bcba909a 100644
--- a/web/admin/country/admin_country_list.xhtml
+++ b/web/admin/country/admin_country_list.xhtml
@@ -16,52 +16,64 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<p:dataTable id="table_list_countries" var="country" value="#{countryController.allCountries()}" tableStyleClass="table table-medium" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_COUNTRIES}" emptyMessage="#{msg.ADMIN_COUNTRY_LIST_EMPTY}">
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_country" title="#{msg.ADMIN_LINK_SHOW_COUNTRY_TITLE}" value="#{country.countryId}">
-					<f:param name="countryId" value="#{country.countryId}" />
-				</p:link>
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_CODE}" />
-				</f:facet>
-
-				<h:outputText value="#{country.countryCode}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_EXTERNAL_DIAL_PREFIX}" />
-				</f:facet>
-
-				<h:outputText value="#{country.countryExternalDialPrefix}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_NAME}" />
-				</f:facet>
-
-				<h:outputText value="#{msg[country.countryI18nKey]}" />
-			</p:column>
-
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
-				</f:facet>
-
-				<links:outputCountryAdminMiniLinks country="#{country}" />
-			</p:column>
-		</p:dataTable>
-
-		<h:form id="form_add_country">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-list-countries">
+			<p:dataTable
+				id="table-list-countries"
+				var="country"
+				value="#{countryController.allCountries()}"
+				tableStyleClass="table table-full"
+				paginator="true"
+				rows="10"
+				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_COUNTRIES}"
+				emptyMessage="#{msg.ADMIN_COUNTRY_LIST_EMPTY}"
+				widgetVar="countryList"
+				>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
+					</f:facet>
+
+					<p:link outcome="admin_show_country" title="#{msg.ADMIN_LINK_SHOW_COUNTRY_TITLE}" value="#{country.countryId}">
+						<f:param name="countryId" value="#{country.countryId}" />
+					</p:link>
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_CODE}" />
+					</f:facet>
+
+					<h:outputText value="#{country.countryCode}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_EXTERNAL_DIAL_PREFIX}" />
+					</f:facet>
+
+					<h:outputText value="#{country.countryExternalDialPrefix}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_LIST_COUNTRY_DATA_COUNTRY_NAME}" />
+					</f:facet>
+
+					<h:outputText value="#{msg[country.countryI18nKey]}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
+					</f:facet>
+
+					<links:outputCountryAdminMiniLinks country="#{country}" />
+				</p:column>
+			</p:dataTable>
+		</h:form>
+
+		<h:form>
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_ADD_COUNTRY_TITLE}" />
 				</div>
@@ -69,8 +81,18 @@
 				<ui:include src="/WEB-INF/templates/admin/country/admin_form_country_data.tpl" />
 
 				<div class="table-footer">
-					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_country" value="#{msg.BUTTON_ADMIN_ADD_COUNTRY}" action="#{adminCountryController.addCountry()}" />
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_COUNTRY}"
+						action="#{adminCountryController.addCountry()}"
+						update=":master:form-list-countries:table-list-countries"
+						/>
 				</div>
 			</h:panelGroup>
 
diff --git a/web/admin/employee/admin_employee_list.xhtml b/web/admin/employee/admin_employee_list.xhtml
new file mode 100644
index 00000000..98e0f362
--- /dev/null
+++ b/web/admin/employee/admin_employee_list.xhtml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl"
+				xmlns="http://www.w3.org/1999/xhtml"
+				xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+				xmlns:links="http://mxchange.org/jsf/core/links"
+				xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+				xmlns:h="http://xmlns.jcp.org/jsf/html"
+				xmlns:f="http://xmlns.jcp.org/jsf/core"
+				xmlns:p="http://primefaces.org/ui">
+
+	<ui:define name="admin_title">
+		<h:outputText value="#{msg.PAGE_TITLE_ADMIN_LIST_COMPANY_EMPLOYEE}" />
+	</ui:define>
+
+	<ui:define name="content_header">
+		<h:outputText value="#{msg.CONTENT_TITLE_ADMIN_LIST_COMPANY_EMPLOYEE}" />
+	</ui:define>
+
+	<ui:define name="content">
+		<h:form id="form-list-company-employees">
+			<p:dataTable
+				id="table-list-company-employees"
+				var="employee"
+				value="#{companyEmployeeController.allCompanyEmployees()}"
+				tableStyleClass="table table-full"
+				paginator="true"
+				paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
+				filteredValue="#{companyEmployeeController.filteredEmployees}"
+				rows="10"
+				reflow="true"
+				resizableColumns="true"
+				rowsPerPageTemplate="5,10,20,50,100"
+				sortMode="multiple"
+				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_COMPANY_EMPLOYEES}"
+				emptyMessage="#{msg.ADMIN_COMPANY_EMPLOYEES_LIST_EMPTY}"
+				widgetVar="employeeList"
+				>
+
+				<f:facet name="header">
+					<h:outputText value="#{msg.ADMIN_LIST_COMPANY_EMPLOYEES_HEADER}" />
+					<p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
+					<p:columnToggler datasource="table-list-company-employees" trigger="toggler" />
+				</f:facet>
+
+				<p:column headerText="#{msg.ADMIN_ASSIGNED_COMPANY_EMPLOYEE}" sortBy="#{employee.employeeBranchOffice}" filterBy="#{employee.employeeBranchOffice}" filterMatchMode="in">
+					<f:facet name="filter">
+						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANY_EMPLOYEES_TITLE}">
+							<f:converter converterId="BranchOfficeConverter" />
+							<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+							<f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="employeeOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
+						</p:selectCheckboxMenu>
+					</f:facet>
+
+					<p:link outcome="admin_show_employee" title="#{msg.ADMIN_LINK_SHOW_COMPANY_EMPLOYEES_COMPANY_EMPLOYEE_TITLE}" value="#{employee.employeeBranchOffice.branchId}" rendered="#{not empty employee.employeeBranchOffice}">
+						<f:param name="userId" value="#{employee.employeeBranchOffice.branchId}" />
+					</p:link>
+
+					<p:link outcome="admin_assign_employee_owner" title="#{msg.ADMIN_LINK_ASSIGN_COMPANY_EMPLOYEES_COMPANY_EMPLOYEE_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty employee.employeeBranchOffice}">
+						<f:param name="employeeId" value="#{employee.employeeId}" />
+					</p:link>
+				</p:column>
+
+				<p:column headerText="#{msg.ADMIN_ASSIGNED_USER}" sortBy="#{employee.employeeUserOwner.userName}" filterBy="#{employee.employeeUserOwner}" filterMatchMode="in">
+					<f:facet name="filter">
+						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USERS_TITLE}">
+							<f:converter converterId="UserConverter" />
+							<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+							<f:selectItems value="#{userController.allUsers()}" var="user" itemValue="#{user}" itemLabel="#{user.userName}" />
+						</p:selectCheckboxMenu>
+					</f:facet>
+
+					<p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_COMPANY_EMPLOYEES_OWNER_USER_TITLE}" value="#{employee.employeeUserOwner.userId}" rendered="#{not empty employee.employeeUserOwner}">
+						<f:param name="userId" value="#{employee.employeeUserOwner.userId}" />
+					</p:link>
+
+					<p:link outcome="admin_assign_employee_owner" title="#{msg.ADMIN_LINK_ASSIGN_COMPANY_EMPLOYEES_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty employee.employeeUserOwner}">
+						<f:param name="employeeId" value="#{employee.employeeId}" />
+					</p:link>
+				</p:column>
+
+				<p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" sortBy="#{employee.employeeCompany.companyName}" filterBy="#{employee.employeeCompany}" filterMatchMode="in">
+					<f:facet name="filter">
+						<p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANIES}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}">
+							<f:converter converterId="BasicCompanyDataConverter" />
+							<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+						</p:selectCheckboxMenu>
+					</f:facet>
+
+					<h:outputLink value="#{employee.employeeCompany.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty employee.employeeCompany.companyWebsiteUrl}">
+						<h:outputText value="#{employee.employeeCompany.companyName}" />
+					</h:outputLink>
+
+					<h:outputText value="#{employee.employeeCompany.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty employee.employeeCompany.companyWebsiteUrl}" />
+				</p:column>
+
+				<p:column headerText="#{msg.DATA_EMAIL_ADDRESS}" sortBy="#{employee.employeeEmailAddress}" filterBy="#{employee.employeeEmailAddress}" filterMatchMode="contains">
+					<h:outputLink value="mailto:#{employee.employeeEmailAddress}" rendered="#{not empty employee.employeeEmailAddress}" />
+
+					<h:outputText value="#{msg.NO_EMAIL_ADDRESS_ENTERED}" rendered="#{empty employee.employeeEmailAddress}" />
+				</p:column>
+
+				<p:column headerText="#{msg.ADMIN_LIST_ENTRY_CREATED}" sortBy="#{employee.employeeCreated}">
+					<h:outputText id="employeeCreated" value="#{employee.employeeCreated.time}">
+						<f:convertDateTime for="employeeCreated" type="both" timeStyle="short" dateStyle="short" />
+					</h:outputText>
+				</p:column>
+
+				<p:column headerText="#{msg.ADMIN_ACTION_LINKS}" sortable="false">
+					<links:outputCompanyEmployeeAdminMiniLinks employee="#{employee}" />
+				</p:column>
+			</p:dataTable>
+		</h:form>
+
+		<h:form>
+			<p:panelGrid layout="grid" columns="1" styleClass="table table-full">
+				<f:facet name="header">
+					<h:outputText value="#{msg.ADMIN_ADD_COMPANY_EMPLOYEE_TITLE}" />
+				</f:facet>
+
+				<h:outputText value="#{msg.ADMIN_ADD_COMPANY_EMPLOYEE_MINIMUM_DATA}" />
+
+				<h:column>
+					<ui:include src="/WEB-INF/templates/admin/employee/admin_form_employee_data.tpl" />
+				</h:column>
+
+				<f:facet name="footer">
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_COMPANY_EMPLOYEE}"
+						action="#{adminCompanyEmployeeController.addCompanyEmployee()}"
+						update=":master:form-list-company-employees:table-list-company-employees"
+						/>
+				</f:facet>
+			</p:panelGrid>
+		</h:form>
+	</ui:define>
+</ui:composition>
diff --git a/web/admin/fax/admin_fax_delete.xhtml b/web/admin/fax/admin_fax_delete.xhtml
index bc93bad2..9999e6de 100644
--- a/web/admin/fax/admin_fax_delete.xhtml
+++ b/web/admin/fax/admin_fax_delete.xhtml
@@ -40,7 +40,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-danger" type="submit" id="button_delete_fax" value="#{msg.BUTTON_ADMIN_DELETE_FAX}" action="#{adminPhoneController.deleteFaxData()}" />
+					<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_fax" value="#{msg.BUTTON_ADMIN_DELETE_FAX}" action="#{adminPhoneController.deleteFaxData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/fax/admin_fax_edit.xhtml b/web/admin/fax/admin_fax_edit.xhtml
index a1fea62f..b8788529 100644
--- a/web/admin/fax/admin_fax_edit.xhtml
+++ b/web/admin/fax/admin_fax_edit.xhtml
@@ -26,7 +26,7 @@
 		<widgets:outputMessageBox id="error-handler-fax-number" message="#{msg.ERROR_BEAN_HELPER_FAX_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.faxNumber}" />
 
 		<h:form id="form_edit_fax" rendered="#{not empty beanHelper.faxNumber}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_EDIT_FAX_NUMBER_TITLE}">
 						<f:param value="#{beanHelper.faxNumber.phoneId}" />
@@ -37,7 +37,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_edit_fax" value="#{msg.BUTTON_ADMIN_EDIT_FAX_NUMBER}" action="#{adminPhoneController.doChangeFaxNumber()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_edit_fax" value="#{msg.BUTTON_ADMIN_EDIT_FAX_NUMBER}" action="#{adminPhoneController.doChangeFaxNumber()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/landline/admin_landline_delete.xhtml b/web/admin/landline/admin_landline_delete.xhtml
index 96c7dfb3..df6cfa44 100644
--- a/web/admin/landline/admin_landline_delete.xhtml
+++ b/web/admin/landline/admin_landline_delete.xhtml
@@ -40,7 +40,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-danger" type="submit" id="button_delete_landline" value="#{msg.BUTTON_ADMIN_DELETE_LAND_LINE}" action="#{adminPhoneController.deleteLandLineData()}" />
+					<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_landline" value="#{msg.BUTTON_ADMIN_DELETE_LAND_LINE}" action="#{adminPhoneController.deleteLandLineData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/landline/admin_landline_edit.xhtml b/web/admin/landline/admin_landline_edit.xhtml
index 31ddae83..02d2fbb1 100644
--- a/web/admin/landline/admin_landline_edit.xhtml
+++ b/web/admin/landline/admin_landline_edit.xhtml
@@ -26,7 +26,7 @@
 		<widgets:outputMessageBox id="error-handler-landline-number" message="#{msg.ERROR_BEAN_HELPER_LAND_LINE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.landLineNumber}" />
 
 		<h:form id="form_edit_landline" rendered="#{not empty beanHelper.landLineNumber}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_EDIT_LAND_LINE_NUMBER_TITLE}">
 						<f:param value="#{beanHelper.landLineNumber.phoneId}" />
@@ -37,7 +37,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_edit_landline" value="#{msg.BUTTON_ADMIN_EDIT_LAND_LINE_NUMBER}" action="#{adminPhoneController.doChangeLandLineNumber()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_edit_landline" value="#{msg.BUTTON_ADMIN_EDIT_LAND_LINE_NUMBER}" action="#{adminPhoneController.doChangeLandLineNumber()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/mobile/admin_mobile_delete.xhtml b/web/admin/mobile/admin_mobile_delete.xhtml
index 5f98227e..c1226824 100644
--- a/web/admin/mobile/admin_mobile_delete.xhtml
+++ b/web/admin/mobile/admin_mobile_delete.xhtml
@@ -40,7 +40,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="button-danger" type="submit" id="button_delete_mobile" value="#{msg.BUTTON_ADMIN_DELETE_MOBILE_NUMBER}" action="#{adminPhoneController.deleteMobileData()}" />
+					<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_mobile" value="#{msg.BUTTON_ADMIN_DELETE_MOBILE_NUMBER}" action="#{adminPhoneController.deleteMobileData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/mobile/admin_mobile_edit.xhtml b/web/admin/mobile/admin_mobile_edit.xhtml
index 61a57ae5..78541334 100644
--- a/web/admin/mobile/admin_mobile_edit.xhtml
+++ b/web/admin/mobile/admin_mobile_edit.xhtml
@@ -26,7 +26,7 @@
 		<widgets:outputMessageBox id="error-handler-mobile-number" message="#{msg.ERROR_BEAN_HELPER_MOBILE_NUMBER_NOT_SET}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.mobileNumber}" />
 
 		<h:form id="form_edit_mobile" rendered="#{not empty beanHelper.mobileNumber}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_EDIT_MOBILE_NUMBER_TITLE}">
 						<f:param value="#{beanHelper.mobileNumber.phoneId}" />
@@ -37,7 +37,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_edit_mobile" value="#{msg.BUTTON_ADMIN_EDIT_MOBILE_NUMBER}" action="#{adminPhoneController.doUpdateMobileNumber()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_edit_mobile" value="#{msg.BUTTON_ADMIN_EDIT_MOBILE_NUMBER}" action="#{adminPhoneController.doUpdateMobileNumber()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/mobile_provider/admin_mobile_provider_list.xhtml b/web/admin/mobile_provider/admin_mobile_provider_list.xhtml
index fc4a0a06..4be14da1 100644
--- a/web/admin/mobile_provider/admin_mobile_provider_list.xhtml
+++ b/web/admin/mobile_provider/admin_mobile_provider_list.xhtml
@@ -21,7 +21,7 @@
 				id="table-list-mobile-provider"
 				var="mobileProvider"
 				value="#{mobileProviderController.allMobileProviders()}"
-				tableStyleClass="table table-medium"
+				tableStyleClass="table table-full"
 				paginator="true"
 				paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
 				widgetVar="mobileProviderTable"
@@ -33,6 +33,7 @@
 				sortMode="multiple"
 				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILE_PROVIDERS}"
 				emptyMessage="#{msg.ADMIN_MOBILE_PROVIDER_LIST_EMPTY}"
+				widgetVar="mobileProviderList"
 				>
 
 				<f:facet name="header">
@@ -79,7 +80,7 @@
 		</h:form>
 
 		<h:form id="form_add_mobile_provider">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_ADD_MOBILE_PROVIDER_TITLE}" />
 				</div>
@@ -87,8 +88,18 @@
 				<ui:include src="/WEB-INF/templates/admin/mobile_provider/admin_form_mobile_provider.tpl" />
 
 				<div class="table-footer">
-					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_mobile_provider" value="#{msg.BUTTON_ADMIN_ADD_MOBILE_PROVIDER}" action="#{adminMobileProviderController.addMobileProvider()}" />
+					<p:commandButton
+						styleClass="reset divider-right"
+						type="reset"
+						value="#{msg.BUTTON_RESET_FORM}"
+						/>
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						value="#{msg.BUTTON_ADMIN_ADD_MOBILE_PROVIDER}"
+						action="#{adminMobileProviderController.addMobileProvider()}"
+						update=":master:form-list-mobile-provider:table-list-mobile-provider"
+						/>
 				</div>
 			</h:panelGroup>
 
diff --git a/web/admin/user/admin_user_delete.xhtml b/web/admin/user/admin_user_delete.xhtml
index 1438a2a9..133e5be2 100644
--- a/web/admin/user/admin_user_delete.xhtml
+++ b/web/admin/user/admin_user_delete.xhtml
@@ -25,8 +25,8 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
-		<h:form id="form_admin_delete_user" rendered="#{not empty beanHelper.user}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-admin-delete-user" rendered="#{not empty beanHelper.user}">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_DELETE_USER_TITLE}">
 						<f:param value="#{beanHelper.user.userName}" />
@@ -52,7 +52,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="button-danger" type="submit" id="button_delete_user" value="#{msg.BUTTON_ADMIN_DELETE_USER}" action="#{adminUserController.deleteUserData()}" />
+					<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_user" value="#{msg.BUTTON_ADMIN_DELETE_USER}" action="#{adminUserController.deleteUserData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/user/admin_user_edit.xhtml b/web/admin/user/admin_user_edit.xhtml
index 79cf4df3..eb421792 100644
--- a/web/admin/user/admin_user_edit.xhtml
+++ b/web/admin/user/admin_user_edit.xhtml
@@ -26,7 +26,7 @@
 		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
 		<h:form id="form_edit_user" rendered="#{not empty beanHelper.user}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_EDIT_USER_TITLE}" />
 				</div>
@@ -39,7 +39,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_edit_user" value="#{msg.BUTTON_ADMIN_EDIT_USER}" action="#{adminUserController.editUserData()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_edit_user" value="#{msg.BUTTON_ADMIN_EDIT_USER}" action="#{adminUserController.editUserData()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/admin/user/admin_user_export.xhtml b/web/admin/user/admin_user_export.xhtml
index 0921f74a..7f4221b3 100644
--- a/web/admin/user/admin_user_export.xhtml
+++ b/web/admin/user/admin_user_export.xhtml
@@ -173,7 +173,7 @@
 				</p:column>
 			</p:dataTable>
 
-			<h:panelGroup styleClass="table table-medium" layout="block">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_EXPORT_USERS_TITLE}" />
 				</div>
@@ -183,7 +183,7 @@
 				</div>
 
 				<div class="table-footer">
-					<p:commandButton styleClass="submit" type="submit" id="button_export_users_xls" value="#{msg.BUTTON_ADMIN_EXPORT_USERS_XLS}">
+					<p:commandButton styleClass="submit" type="submit" id="submit_export_users_xls" value="#{msg.BUTTON_ADMIN_EXPORT_USERS_XLS}">
 						<p:dataExporter type="xls" target="table_export_users" fileName="all_users" />
 					</p:commandButton>
 				</div>
diff --git a/web/admin/user/admin_user_list.xhtml b/web/admin/user/admin_user_list.xhtml
index a47b8986..4f86b237 100644
--- a/web/admin/user/admin_user_list.xhtml
+++ b/web/admin/user/admin_user_list.xhtml
@@ -17,88 +17,100 @@
 	</ui:define>
 
 	<ui:define name="content">
-		<p:dataTable id="table_list_users" var="user" value="#{userController.allUsers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}" emptyMessage="#{msg.ADMIN_USER_LIST_EMPTY}">
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_USER_ID}" />
-				</f:facet>
-
-				<p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_USER_TITLE}" value="#{user.userId}">
-					<f:param name="userId" value="#{user.userId}" />
-				</p:link>
-			</p:column>
-
-			<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
+		<h:form id="form-list-users">
+			<p:dataTable
+				id="table-list-users"
+				var="user"
+				value="#{userController.allUsers()}"
+				tableStyleClass="table table-full"
+				paginator="true"
+				rows="10"
+				summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}"
+				emptyMessage="#{msg.ADMIN_USER_LIST_EMPTY}"
+				widgetVar="userList"
+				>
 				<p:column>
 					<f:facet name="header">
-						<h:outputText value="#{msg.ADMIN_LIST_USER_NAME}" />
+						<h:outputText value="#{msg.ADMIN_USER_ID}" />
 					</f:facet>
 
-					<h:outputText value="#{user.userName}" />
+					<p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_USER_TITLE}" value="#{user.userId}">
+						<f:param name="userId" value="#{user.userId}" />
+					</p:link>
 				</p:column>
-			</ui:fragment>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" />
-				</f:facet>
+				<ui:fragment rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
+					<p:column>
+						<f:facet name="header">
+							<h:outputText value="#{msg.ADMIN_LIST_USER_NAME}" />
+						</f:facet>
 
-				<h:outputText value="#{msg[user.userContact.contactPersonalTitle.messageKey]}" />
-			</p:column>
+						<h:outputText value="#{user.userName}" />
+					</p:column>
+				</ui:fragment>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" />
+					</f:facet>
 
-				<h:outputText value="#{user.userContact.contactFirstName}" />
-			</p:column>
+					<h:outputText value="#{msg[user.userContact.contactPersonalTitle.messageKey]}" />
+				</p:column>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_FIRST_NAME}" />
+					</f:facet>
 
-				<h:outputText value="#{user.userContact.contactFamilyName}" />
-			</p:column>
+					<h:outputText value="#{user.userContact.contactFirstName}" />
+				</p:column>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_USER_ACCOUNT_STATUS}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_CONTACT_FAMILY_NAME}" />
+					</f:facet>
+
+					<h:outputText value="#{user.userContact.contactFamilyName}" />
+				</p:column>
+
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_USER_ACCOUNT_STATUS}" />
+					</f:facet>
 
-				<h:outputText styleClass="#{user.userAccountStatus.styleClass}" value="#{msg[user.userAccountStatus.messageKey]}" />
-			</p:column>
+					<h:outputText styleClass="#{user.userAccountStatus.styleClass}" value="#{msg[user.userAccountStatus.messageKey]}" />
+				</p:column>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_USER_PROFILE_MODE}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_USER_PROFILE_MODE}" />
+					</f:facet>
 
-				<h:outputText value="#{msg[user.userProfileMode.messageKey]}" />
-			</p:column>
+					<h:outputText value="#{msg[user.userProfileMode.messageKey]}" />
+				</p:column>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_LIST_ENTRY_CREATED}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_LIST_ENTRY_CREATED}" />
+					</f:facet>
 
-				<h:outputText id="userCreated" value="#{user.userCreated.time}">
-					<f:convertDateTime for="userCreated" type="both" timeStyle="short" dateStyle="short" />
-				</h:outputText>
-			</p:column>
+					<h:outputText id="userCreated" value="#{user.userCreated.time}">
+						<f:convertDateTime for="userCreated" type="both" timeStyle="short" dateStyle="short" />
+					</h:outputText>
+				</p:column>
 
-			<p:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
-				</f:facet>
+				<p:column>
+					<f:facet name="header">
+						<h:outputText value="#{msg.ADMIN_ACTION_LINKS}" />
+					</f:facet>
 
-				<links:outputUserAdminMiniLinks user="#{user}" />
-			</p:column>
-		</p:dataTable>
+					<links:outputUserAdminMiniLinks user="#{user}" />
+				</p:column>
+			</p:dataTable>
+		</h:form>
 
-		<h:panelGroup styleClass="table table-medium" layout="block">
-			<h:form id="form_admin_add_user">
+		<h:panelGroup styleClass="table table-full" layout="block">
+			<h:form id="form-admin-add-user">
 				<div class="table-header">
 					<h:outputText value="#{msg.ADMIN_ADD_USER_TITLE}" />
 				</div>
@@ -141,7 +153,14 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_add_user" value="#{msg.BUTTON_ADMIN_ADD_USER}" action="#{adminUserController.addUser()}" />
+					<p:commandButton
+						styleClass="submit"
+						type="submit"
+						id="submit_add_user"
+						value="#{msg.BUTTON_ADMIN_ADD_USER}"
+						action="#{adminUserController.addUser()}"
+						update=":master:form-list-users:table-list-users"
+						/>
 				</div>
 			</h:form>
 		</h:panelGroup>
diff --git a/web/admin/user/admin_user_lock.xhtml b/web/admin/user/admin_user_lock.xhtml
index b488e4f7..0c60f757 100644
--- a/web/admin/user/admin_user_lock.xhtml
+++ b/web/admin/user/admin_user_lock.xhtml
@@ -25,8 +25,8 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
-		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'CONFIRMED'}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-admin-user-lock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'CONFIRMED'}">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_LOCK_USER_TITLE}">
 						<f:param value="#{beanHelper.user.userName}" />
diff --git a/web/admin/user/admin_user_resend_confirmation_link.xhtml b/web/admin/user/admin_user_resend_confirmation_link.xhtml
index 5afc35d2..503cb3a8 100644
--- a/web/admin/user/admin_user_resend_confirmation_link.xhtml
+++ b/web/admin/user/admin_user_resend_confirmation_link.xhtml
@@ -25,8 +25,8 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
-		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'UNCONFIRMED'}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-admin-user-resend" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'UNCONFIRMED'}">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_RESEND_USER_CONFIRMATION_LINK_TITLE}">
 						<f:param value="#{beanHelper.user.userName}" />
diff --git a/web/admin/user/admin_user_unlock.xhtml b/web/admin/user/admin_user_unlock.xhtml
index 517db8c3..b796c348 100644
--- a/web/admin/user/admin_user_unlock.xhtml
+++ b/web/admin/user/admin_user_unlock.xhtml
@@ -25,8 +25,8 @@
 	<ui:define name="content">
 		<widgets:outputMessageBox id="error-helper-user" message="#{msg.ERROR_USER_NOT_FOUND}" messageStyleClass="alert-danger" rendered="#{empty beanHelper.user}" />
 
-		<h:form id="form_admin_user_unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'LOCKED'}">
-			<h:panelGroup styleClass="table table-medium" layout="block">
+		<h:form id="form-admin-user-unlock" rendered="#{not empty beanHelper.user and beanHelper.user.userAccountStatus == 'LOCKED'}">
+			<h:panelGroup styleClass="table table-full" layout="block">
 				<div class="table-header">
 					<h:outputFormat value="#{msg.ADMIN_UNLOCK_USER_TITLE}">
 						<f:param value="#{beanHelper.user.userName}" />
diff --git a/web/guest/user/user_login.xhtml b/web/guest/user/user_login.xhtml
index dd47190d..586f65e6 100644
--- a/web/guest/user/user_login.xhtml
+++ b/web/guest/user/user_login.xhtml
@@ -24,7 +24,7 @@
 
 				<h:outputText value="&#160;" />
 
-				<p:link id="user_register" outcome="user_register" title="#{msg.LINK_GUEST_USER_NO_ACCOUNT_TITLE}" value="#{msg.LINK_GUEST_USER_NO_ACCOUNT_YET}" />
+				<p:link id="user_register" outcome="user_register" title="#{msg.GUEST_LINK_USER_NO_ACCOUNT_TITLE}" value="#{msg.GUEST_LINK_USER_NO_ACCOUNT_YET}" />
 			</h:panelGroup>
 
 			<h:panelGroup styleClass="para" layout="block">
@@ -32,7 +32,7 @@
 			</h:panelGroup>
 
 			<h:panelGroup styleClass="para" layout="block" rendered="#{featureController.isFeatureEnabled('user_login_require_user_name') and featureController.isFeatureEnabled('user_password_recovery')}">
-				<p:link id="user_lost_password" outcome="user_lost_password" title="#{msg.LINK_TITLE_GUEST_LOGIN_LOST_PASSWORD}" value="#{msg.LINK_GUEST_LOGIN_LOST_PASSWORD}" />
+				<p:link id="user_lost_password" outcome="user_lost_password" title="#{msg.LINK_TITLE_GUEST_LOGIN_LOST_PASSWORD}" value="#{msg.GUEST_LINK_USER_LOST_PASSWORD}" />
 			</h:panelGroup>
 		</ui:fragment>
 	</ui:define>
diff --git a/web/guest/user/user_profile.xhtml b/web/guest/user/user_profile.xhtml
index d490c8ed..ef4cd227 100644
--- a/web/guest/user/user_profile.xhtml
+++ b/web/guest/user/user_profile.xhtml
@@ -35,12 +35,12 @@
 
 			<ui:fragment rendered="#{profileController.isProfileLinkVisibleById(userController.userId)}">
 				<div align="center">
-					<h:panelGrid styleClass="table" headerClass="table-header" footerClass="table-footer">
+					<p:panelGrid styleClass="table" headerClass="table-header" footerClass="table-footer">
 						<f:facet name="header">
 							<h:outputText value="#{msg.PUBLIC_USER_PROFILE}" />
 						</f:facet>
 						<!-- @TODO Unfinished -->
-					</h:panelGrid>
+					</p:panelGrid>
 				</div>
 			</ui:fragment>
 		</ui:fragment>
diff --git a/web/guest/user/user_register_done.xhtml b/web/guest/user/user_register_done.xhtml
index c34301d4..fc43fc13 100644
--- a/web/guest/user/user_register_done.xhtml
+++ b/web/guest/user/user_register_done.xhtml
@@ -21,7 +21,7 @@
 		</h:panelGroup>
 
 		<h:panelGroup layout="block" styleClass="registration_form">
-			<p:link id="resend_link" styleClass="resend_link" value="#{msg.LINK_GUEST_RESEND_CONFIRMATION_LINK}" outcome="user_resend_link" rendered="#{featureController.isFeatureEnabled('user_resend_confirmation_link')}" />
+			<p:link id="resend_link" styleClass="resend_link" value="#{msg.GUEST_LINK_RESEND_CONFIRMATION_LINK}" outcome="user_resend_link" rendered="#{featureController.isFeatureEnabled('user_resend_confirmation_link')}" />
 		</h:panelGroup>
 	</ui:define>
 </ui:composition>
diff --git a/web/guest/user/user_resend_link.xhtml b/web/guest/user/user_resend_link.xhtml
index 08dfc7e5..69f7ae52 100644
--- a/web/guest/user/user_resend_link.xhtml
+++ b/web/guest/user/user_resend_link.xhtml
@@ -52,7 +52,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_resend_link" value="#{msg.BUTTON_RESEND_CONFIRMATION_LINK}" action="#{userResendConfirmationController.doResendLink()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_resend_link" value="#{msg.BUTTON_RESEND_CONFIRMATION_LINK}" action="#{userResendConfirmationController.doResendLink()}" />
 				</div>
 			</h:panelGroup>
 		</h:form>
diff --git a/web/resources/css/default.css b/web/resources/css/default.css
index 42fb9258..95568b94 100644
--- a/web/resources/css/default.css
+++ b/web/resources/css/default.css
@@ -6,12 +6,8 @@ body {
 	margin: 0px;
 }
 
-h1 {
-	border-bottom: 1px solid #AFAFAF;
-	font-size:  16px;
-	font-weight: bold;
-	margin: 0px;
-	padding: 0px;
+.page-header > h1 {
+	margin: 2px;
 }
 
 a:link, a:visited {
diff --git a/web/resources/css/layout.css b/web/resources/css/layout.css
index b5c6eb7a..feb0149b 100644
--- a/web/resources/css/layout.css
+++ b/web/resources/css/layout.css
@@ -4,15 +4,18 @@ div, table {
 }
 /**/
 
-#page-header {
-	border-bottom: 1px solid grey;
+.page-header {
 	background-color: steelblue;
 	color: white;
 	padding: 5px;
-	margin: 0px 0px 10px 0px;
 }
 
-#page-footer {
+.page-content-gap {
+	height: 0.35em;
+	background-image: linear-gradient(steelblue, white);
+}
+
+.page-footer {
 	background-color: lightblue;
 	padding: 5px;
 	margin: 10px 0px 0px 0px;
@@ -83,54 +86,6 @@ table, .table, .table-medium {
 	overflow: auto;
 }
 
-.table-left {
-	width: 250px;
-	min-height: 20px;
-	float: left;
-}
-
-.table-right {
-	width: 200px;
-	min-height: 20px;
-	float: right;
-}
-
-.table-left25 {
-	width: 20px;
-	min-height: 20px;
-	float: left;
-}
-
-.table-right75 {
-	width: 430px;
-	min-height: 20px;
-	float: right;
-}
-
-.table-left-medium {
-	width: 300px;
-	min-height: 20px;
-	float: left;
-}
-
-.table-right-medium {
-	width: 300px;
-	min-height: 20px;
-	float: right;
-}
-
-.table-left25-medium {
-	width: 150px;
-	min-height: 20px;
-	float: left;
-}
-
-.table-right75-medium {
-	width: 490px;
-	min-height: 20px;
-	float: right;
-}
-
 .para {
 	padding: 5px;
 }
@@ -342,3 +297,7 @@ ul.navbar-horizontal li.footer-copyright {
 .column-selector {
 	float: right;
 }
+
+.ui-noborder {
+	border: initial;
+}
diff --git a/web/user/login_edit_user_data.xhtml b/web/user/login_edit_user_data.xhtml
index 8e99559d..658794c6 100644
--- a/web/user/login_edit_user_data.xhtml
+++ b/web/user/login_edit_user_data.xhtml
@@ -28,18 +28,18 @@
 				<ul>
 					<ui:fragment rendered="#{not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password')}">
 						<li>
-							<p:link title="#{msg.LINK_LOGIN_USER_CHANGE_PERSONAL_DATA_TITLE}" outcome="login_user_change_personal_data" value="#{msg.LINK_LOGIN_USER_CHANGE_PERSONAL_DATA}" />
+							<p:link title="#{msg.LOGIN_LINK_USER_CHANGE_PERSONAL_DATA_TITLE}" outcome="login_user_change_personal_data" value="#{msg.LOGIN_LINK_USER_CHANGE_PERSONAL_DATA}" />
 						</li>
 					</ui:fragment>
 
 					<ui:fragment rendered="#{not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password')}">
 						<li>
-							<p:link title="#{msg.LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS_TITLE}" outcome="login_user_change_email_address" value="#{msg.LINK_LOGIN_USER_CHANGE_EMAIL_ADDRESS}" />
+							<p:link title="#{msg.LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS_TITLE}" outcome="login_user_change_email_address" value="#{msg.LOGIN_LINK_USER_CHANGE_EMAIL_ADDRESS}" />
 						</li>
 					</ui:fragment>
 
 					<li>
-						<p:link title="#{msg.LINK_LOGIN_USER_CHANGE_PASSWORD_TITLE}" outcome="login_user_change_password" value="#{msg.LINK_LOGIN_USER_CHANGE_PASSWORD}" />
+						<p:link title="#{msg.LOGIN_LINK_USER_CHANGE_PASSWORD_TITLE}" outcome="login_user_change_password" value="#{msg.LOGIN_LINK_USER_CHANGE_PASSWORD}" />
 					</li>
 				</ul>
 			</h:panelGroup>
diff --git a/web/user/login_user_change_email_address.xhtml b/web/user/login_user_change_email_address.xhtml
index 672c8218..6a75ad0c 100644
--- a/web/user/login_user_change_email_address.xhtml
+++ b/web/user/login_user_change_email_address.xhtml
@@ -47,8 +47,8 @@
 				<ui:include src="/WEB-INF/templates/login/login_enter_current_password.tpl" />
 
 				<div class="table-footer">
-					<p:commandButton class="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton class="submit" type="submit" id="button_change_email" value="#{msg.BUTTON_CHANGE_EMAIL_ADDRESS}" action="#{userEmailChangeController.doUserChangeEmailAddress()}" />
+					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_change_email" value="#{msg.BUTTON_CHANGE_EMAIL_ADDRESS}" action="#{userEmailChangeController.doUserChangeEmailAddress()}" />
 				</div>
 			</h:form>
 		</h:panelGroup>
diff --git a/web/user/login_user_change_password.xhtml b/web/user/login_user_change_password.xhtml
index cbac07e5..44a3fd1a 100644
--- a/web/user/login_user_change_password.xhtml
+++ b/web/user/login_user_change_password.xhtml
@@ -72,7 +72,7 @@
 
 					<div class="table-footer">
 						<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-						<p:commandButton styleClass="submit" type="submit" id="button_change_password" value="#{msg.BUTTON_USER_CHANGE_PASSWORD}" action="#{userPasswordController.doChangePassword()}" />
+						<p:commandButton styleClass="submit" type="submit" id="submit_change_password" value="#{msg.BUTTON_USER_CHANGE_PASSWORD}" action="#{userPasswordController.doChangePassword()}" />
 					</div>
 				</h:panelGroup>
 			</h:form>
diff --git a/web/user/login_user_change_personal_data.xhtml b/web/user/login_user_change_personal_data.xhtml
index b5c1a72e..8688b949 100644
--- a/web/user/login_user_change_personal_data.xhtml
+++ b/web/user/login_user_change_personal_data.xhtml
@@ -26,7 +26,7 @@
 			<ui:include src="/WEB-INF/templates/user/user_not_logged_in.tpl" />
 		</ui:fragment>
 
-		<h:panelGroup styleClass="table table-medium" layout="block" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('change_user_personal_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}">
+		<h:panelGroup styleClass="table table-full" layout="block" rendered="#{userLoginController.isUserLoggedIn() and featureController.isFeatureEnabled('change_user_personal_data') and (not userLoginController.ifUserMustChangePassword() or not featureController.isFeatureEnabled('user_must_change_password'))}">
 			<div class="table-header">
 				<h:outputText value="#{msg.LOGIN_CHANGE_PERSONAL_DATA_TITLE}" />
 			</div>
@@ -40,7 +40,7 @@
 
 				<div class="table-footer">
 					<p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
-					<p:commandButton styleClass="submit" type="submit" id="button_change_personal_data" value="#{msg.BUTTON_CHANGE_PERSONAL_DATA}" action="#{userController.doChangePersonalData()}" />
+					<p:commandButton styleClass="submit" type="submit" id="submit_change_personal_data" value="#{msg.BUTTON_CHANGE_PERSONAL_DATA}" action="#{userController.doChangePersonalData()}" />
 				</div>
 			</h:form>
 		</h:panelGroup>
-- 
2.39.5