diff --git a/Kieker.WebGUI/nb-configuration.xml b/Kieker.WebGUI/nb-configuration.xml
index 508f207db29790e2eaa1be761dc0bc3347a2924a..e226fa62400598ebb5e2a3879a910c26f679849c 100644
--- a/Kieker.WebGUI/nb-configuration.xml
+++ b/Kieker.WebGUI/nb-configuration.xml
@@ -21,10 +21,10 @@ Any value defined here will override the pom.xml file value but is only applicab
     </properties>
     <spring-data xmlns="http://www.netbeans.org/ns/spring-data/1">
         <config-files>
-            <config-file>src/main/webapp/WEB-INF/spring-config.xml</config-file>
-            <config-file>src/main/webapp/WEB-INF/spring-security-taglib.xml</config-file>
-            <config-file>src/main/webapp/WEB-INF/spring-database-config.xml</config-file>
             <config-file>src/main/webapp/WEB-INF/spring-bean-config.xml</config-file>
+            <config-file>src/main/webapp/WEB-INF/spring-common-config.xml</config-file>
+            <config-file>src/main/webapp/WEB-INF/spring-database-config.xml</config-file>
+            <config-file>src/main/webapp/WEB-INF/spring-security-config.xml</config-file>
         </config-files>
         <config-file-groups/>
     </spring-data>
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IUserManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IUserManager.java
deleted file mode 100644
index 827e68580e90ff9628d55d5debb18de8f4db21c4..0000000000000000000000000000000000000000
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IUserManager.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************
- * Copyright 2012 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ***************************************************************************/
-
-package kieker.webgui.common;
-
-import java.util.List;
-
-import org.springframework.security.access.prepost.PreAuthorize;
-
-import kieker.webgui.domain.User;
-import kieker.webgui.domain.User.Role;
-
-public interface IUserManager {
-
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void addUser(final String username, final String password, final List<Role> roles);
-
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void removeUser(final String username);
-
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void editUser(final String username, final String password, final Role... roles);
-
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public List<User> getUsers();
-
-}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/package-info.java
deleted file mode 100644
index 7d66d4494cbfd8565eb90383c1ef37e3b1c5d862..0000000000000000000000000000000000000000
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/***************************************************************************
- * Copyright 2012 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ***************************************************************************/
-
-/**
- * @author Nils Christian Ehmke
- *
- */
-package kieker.webgui.common.converter;
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/UserManagerImpl.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/UserManagerImpl.java
deleted file mode 100644
index d737a4b39948d8dd5b841f440bed651612e9171d..0000000000000000000000000000000000000000
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/UserManagerImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/***************************************************************************
- * Copyright 2012 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ***************************************************************************/
-
-package kieker.webgui.common.impl;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.sql.DataSource;
-
-import org.springframework.security.access.prepost.PreAuthorize;
-
-import kieker.common.logging.Log;
-import kieker.common.logging.LogFactory;
-import kieker.webgui.common.IUserManager;
-import kieker.webgui.domain.User;
-import kieker.webgui.domain.User.Role;
-
-public class UserManagerImpl implements IUserManager {
-
-	private static final Log LOG = LogFactory.getLog(UserManagerImpl.class);
-	private DataSource dataSource;
-	private Connection connection;
-
-	/**
-	 * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b>
-	 */
-	public UserManagerImpl() {
-		// No code necessary
-	}
-
-	/**
-	 * This method initializes the object.. <b>Do not call this method manually. It will only be accessed by Spring.</b>
-	 */
-	public void initialize() {
-		try {
-			this.connection = this.dataSource.getConnection();
-		} catch (final SQLException ex) {
-			UserManagerImpl.LOG.error("Could not establish database connection.", ex);
-		}
-	}
-
-	public void destroy() {
-		try {
-			this.connection.close();
-		} catch (final SQLException ex) {
-			UserManagerImpl.LOG.error("Could not close database connection.", ex);
-		}
-	}
-
-	public void setDataSource(final DataSource dataSource) {
-		this.dataSource = dataSource;
-	}
-
-	@Override
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void addUser(final String username, final String password, final List<Role> roles) {
-		PreparedStatement userCmd = null;
-		PreparedStatement roleCmd = null;
-		try {
-			userCmd = this.connection.prepareStatement("INSERT INTO KIEKERUser (name, password, enabled) VALUES (?, ?, True)");
-			roleCmd = this.connection.prepareStatement("INSERT INTO Userroles (name, role) VALUES (?, ?)");
-
-			userCmd.setString(1, username);
-			userCmd.setString(2, password);
-			userCmd.execute();
-
-			roleCmd.setString(1, username);
-			for (final Role role : roles) {
-				roleCmd.setInt(2, role.getID());
-				roleCmd.execute();
-			}
-		} catch (final SQLException ex) {
-			UserManagerImpl.LOG.error("Could not add user to the database.", ex);
-		} finally {
-			if (userCmd != null) {
-				try {
-					userCmd.close();
-				} catch (final SQLException ex) {
-					UserManagerImpl.LOG.error("Could not close prepared statement.", ex);
-				}
-			}
-			if (roleCmd != null) {
-				try {
-					roleCmd.close();
-				} catch (final SQLException ex) {
-					UserManagerImpl.LOG.error("Could not close prepared statement.", ex);
-				}
-			}
-		}
-	}
-
-	@Override
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void removeUser(final String username) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void editUser(final String username, final String password, final Role... roles) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public List<User> getUsers() {
-		// FIXME Users without roles
-		final List<User> result = new ArrayList<User>();
-		ResultSet queryResult = null;
-
-		try {
-			final Map<String, User> tempMap = new TreeMap<String, User>();
-
-			final PreparedStatement getQuery = this.connection
-					.prepareStatement("select u.name, ur.role, u.enabled from KIEKERUser u, Userroles ur where u.name=ur.name");
-
-			// Run through all results
-			queryResult = getQuery.executeQuery();
-			while (queryResult.next()) {
-				// Get both the username and the role from the current entry
-				final String username = queryResult.getString(1);
-				final int roleID = queryResult.getInt(2);
-				final Role role = Role.fromID(roleID);
-				final boolean enabled = queryResult.getBoolean(3);
-
-				// If the user doesn't exist in our map yet, add him.
-				// In each case we add the role to the user
-				if (tempMap.containsKey(username)) {
-					tempMap.get(username).getRoles().add(role);
-				} else {
-					final List<Role> roles = new ArrayList<Role>();
-					roles.add(role);
-					tempMap.put(username, new User(username, null, roles, enabled));
-				}
-			}
-
-			// Now convert the map to the list
-			result.addAll(tempMap.values());
-		} catch (final SQLException ex) {
-			UserManagerImpl.LOG.error("Could not receive user list.", ex);
-		} finally {
-			try {
-				if (queryResult != null) {
-					queryResult.close();
-				}
-			} catch (final SQLException ex) {
-				UserManagerImpl.LOG.error("Could not close query result.", ex);
-			}
-		}
-
-		return result;
-	}
-}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/domain/Project.java b/Kieker.WebGUI/src/main/java/kieker/webgui/domain/Project.java
index 2c5d9f064cd6f71439e5241a53843500a65a439a..dd2002f45824c1c11067255a6b2326c73c75c448 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/domain/Project.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/domain/Project.java
@@ -22,6 +22,8 @@ import kieker.analysis.model.analysisMetaModel.MIProject;
  */
 public class Project {
 
+	private String owner;
+	private String lastEditor;
 	private MIProject projectInstance;
 
 	public Project(final MIProject projectInstace) {
@@ -47,4 +49,42 @@ public class Project {
 		this.projectInstance = projectInstance;
 	}
 
+	/**
+	 * Getter for the property {@link Project#owner}.
+	 * 
+	 * @return The current value of the property.
+	 */
+	public String getOwner() {
+		return this.owner;
+	}
+
+	/**
+	 * Setter for the property {@link Project#owner}.
+	 * 
+	 * @param owner
+	 *            The new value of the property.
+	 */
+	public void setOwner(final String owner) {
+		this.owner = owner;
+	}
+
+	/**
+	 * Getter for the property {@link Project#lastEditor}.
+	 * 
+	 * @return The current value of the property.
+	 */
+	public String getLastEditor() {
+		return this.lastEditor;
+	}
+
+	/**
+	 * Setter for the property {@link Project#lastEditor}.
+	 * 
+	 * @param lastEditor
+	 *            The new value of the property.
+	 */
+	public void setLastEditor(final String lastEditor) {
+		this.lastEditor = lastEditor;
+	}
+
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/IUserDAO.java b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/IUserDAO.java
index f4d6748e8545dbdf1796c3dade51d23b2f74c9cd..f641af29a3168d9447340c88394fecd6d81f7d40 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/IUserDAO.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/IUserDAO.java
@@ -22,7 +22,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 
 import kieker.webgui.domain.User;
-import kieker.webgui.common.exception.DataAccessException;
+import kieker.webgui.domain.User.Role;
 
 /**
  * 
@@ -33,18 +33,18 @@ public interface IUserDAO {
 
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
 	@Transactional
-	public void addUser(final User user) throws DataAccessException;
+	public void addUser(final String username, final String password, final List<Role> roles);
 
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
 	@Transactional
-	public void editUser(final User user) throws DataAccessException;
+	public void removeUser(final String username);
 
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
 	@Transactional
-	public void deleteUser(final User user) throws DataAccessException;
+	public void editUser(final String username, final String password, final Role... roles);
 
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
 	@Transactional
-	public List<User> getUsers() throws DataAccessException;
+	public List<User> getUsers();
 
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/DerbyUserDAOImpl.java b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/DerbyUserDAOImpl.java
index 6c49c87dc67fa8262abb6b727e4e8f616f6c9d80..f11448d01f85dd96f01bb34c232f0dcf315d9e2b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/DerbyUserDAOImpl.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/DerbyUserDAOImpl.java
@@ -31,7 +31,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
 
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.common.exception.DataAccessException;
 import kieker.webgui.domain.User;
 import kieker.webgui.domain.User.Role;
 import kieker.webgui.persistence.IUserDAO;
@@ -46,51 +45,61 @@ public class DerbyUserDAOImpl implements IUserDAO {
 	private DataSource dataSource;
 	private Connection connection;
 
-	public void initialize() throws Exception {
-		this.connection = this.dataSource.getConnection();
-	}
-
-	public void destroy() throws Exception {
-		this.connection.close();
+	/**
+	 * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b>
+	 */
+	public DerbyUserDAOImpl() {
+		// No code necessary
 	}
 
 	/**
-	 * Setter for the property {@link DerbyUserDAO#dataSource}.
-	 * 
-	 * @param dataSource
-	 *            The new value of the property.
+	 * This method initializes the object.. <b>Do not call this method manually. It will only be accessed by Spring.</b>
 	 */
+	public void initialize() {
+		try {
+			this.connection = this.dataSource.getConnection();
+		} catch (final SQLException ex) {
+			DerbyUserDAOImpl.LOG.error("Could not establish database connection.", ex);
+		}
+	}
+
+	public void destroy() {
+		try {
+			this.connection.close();
+		} catch (final SQLException ex) {
+			DerbyUserDAOImpl.LOG.error("Could not close database connection.", ex);
+		}
+	}
+
 	public void setDataSource(final DataSource dataSource) {
 		this.dataSource = dataSource;
 	}
 
 	@Override
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void addUser(final User user) throws DataAccessException {
+	public void addUser(final String username, final String password, final List<Role> roles) {
 		PreparedStatement userCmd = null;
 		PreparedStatement roleCmd = null;
 		try {
-			userCmd = this.connection.prepareStatement("INSERT INTO KIEKERUser (name, password, enabled) VALUES (?, ?, ?)");
+			userCmd = this.connection.prepareStatement("INSERT INTO KIEKERUser (name, password, enabled) VALUES (?, ?, True)");
 			roleCmd = this.connection.prepareStatement("INSERT INTO Userroles (name, role) VALUES (?, ?)");
 
-			userCmd.setString(1, user.getName());
-			userCmd.setString(2, user.getPassword());
-			userCmd.setBoolean(3, user.isEnabled());
+			userCmd.setString(1, username);
+			userCmd.setString(2, password);
 			userCmd.execute();
 
-			roleCmd.setString(1, user.getName());
-			for (final Role role : user.getRoles()) {
+			roleCmd.setString(1, username);
+			for (final Role role : roles) {
 				roleCmd.setInt(2, role.getID());
 				roleCmd.execute();
 			}
 		} catch (final SQLException ex) {
-			throw new DataAccessException("Could not add user to the database.", ex);
+			DerbyUserDAOImpl.LOG.error("Could not add user to the database.", ex);
 		} finally {
 			if (userCmd != null) {
 				try {
 					userCmd.close();
 				} catch (final SQLException ex) {
-					// No need to inform the calling method
 					DerbyUserDAOImpl.LOG.error("Could not close prepared statement.", ex);
 				}
 			}
@@ -98,7 +107,6 @@ public class DerbyUserDAOImpl implements IUserDAO {
 				try {
 					roleCmd.close();
 				} catch (final SQLException ex) {
-					// No need to inform the calling method
 					DerbyUserDAOImpl.LOG.error("Could not close prepared statement.", ex);
 				}
 			}
@@ -107,19 +115,20 @@ public class DerbyUserDAOImpl implements IUserDAO {
 
 	@Override
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void deleteUser(final User user) throws DataAccessException {
+	public void removeUser(final String username) {
 		// TODO Auto-generated method stub
+
 	}
 
 	@Override
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public void editUser(final User user) throws DataAccessException {
+	public void editUser(final String username, final String password, final Role... roles) {
 		// TODO Auto-generated method stub
 	}
 
 	@Override
 	@PreAuthorize("hasRole('ROLE_ADMIN')")
-	public List<User> getUsers() throws DataAccessException {
+	public List<User> getUsers() {
 		// FIXME Users without roles
 		final List<User> result = new ArrayList<User>();
 		ResultSet queryResult = null;
@@ -153,14 +162,13 @@ public class DerbyUserDAOImpl implements IUserDAO {
 			// Now convert the map to the list
 			result.addAll(tempMap.values());
 		} catch (final SQLException ex) {
-			throw new DataAccessException("Could not receive user list.", ex);
+			DerbyUserDAOImpl.LOG.error("Could not receive user list.", ex);
 		} finally {
 			try {
 				if (queryResult != null) {
 					queryResult.close();
 				}
 			} catch (final SQLException ex) {
-				// No need to inform the calling method
 				DerbyUserDAOImpl.LOG.error("Could not close query result.", ex);
 			}
 		}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/service/IUserService.java b/Kieker.WebGUI/src/main/java/kieker/webgui/service/IUserService.java
index 82f4dbf94b75612526cdd284fefdd4522ac0ecdb..0623c8ae0b7cd1f69828fb41b447ed086ba7aa2b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/service/IUserService.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/service/IUserService.java
@@ -15,9 +15,33 @@
  ***************************************************************************/
 package kieker.webgui.service;
 
+import java.util.List;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+
+import kieker.webgui.domain.User;
+import kieker.webgui.domain.User.Role;
+
 /**
  * @author Nils Christian Ehmke
  */
 public interface IUserService {
 
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void addUser(final String username, final String password, final List<Role> roles);
+
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void removeUser(final String username);
+
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void editUser(final String username, final String password, final Role... roles);
+
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public List<User> getUsers();
+
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/service/impl/UserServiceImpl.java b/Kieker.WebGUI/src/main/java/kieker/webgui/service/impl/UserServiceImpl.java
index a50db3035582d9d0e4c50a79f4d9d2f80fb38693..80bd5e36b614afd89eea00daf23845d31c87cd91 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/service/impl/UserServiceImpl.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/service/impl/UserServiceImpl.java
@@ -15,6 +15,14 @@
  ***************************************************************************/
 package kieker.webgui.service.impl;
 
+import java.util.List;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+
+import kieker.webgui.domain.User;
+import kieker.webgui.domain.User.Role;
+import kieker.webgui.persistence.IUserDAO;
 import kieker.webgui.service.IUserService;
 
 /**
@@ -22,11 +30,68 @@ import kieker.webgui.service.IUserService;
  */
 public class UserServiceImpl implements IUserService {
 
+	private IUserDAO userDAO;
+
+	public UserServiceImpl() {
+		// No code necessary
+	}
+
 	/**
+	 * Setter for the property {@link UserServiceImpl#userDAO}.
 	 * 
+	 * @param userDAO
+	 *            The new value of the property.
 	 */
-	public UserServiceImpl() {
-		// TODO Auto-generated constructor stub
+	public void setUserDAO(final IUserDAO userDAO) {
+		this.userDAO = userDAO;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see kieker.webgui.service.IUserService#addUser(java.lang.String, java.lang.String, java.util.List)
+	 */
+	@Override
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void addUser(final String username, final String password, final List<Role> roles) {
+		this.userDAO.addUser(username, password, roles);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see kieker.webgui.service.IUserService#removeUser(java.lang.String)
+	 */
+	@Override
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void removeUser(final String username) {
+		this.userDAO.removeUser(username);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see kieker.webgui.service.IUserService#editUser(java.lang.String, java.lang.String, kieker.webgui.domain.User.Role[])
+	 */
+	@Override
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public void editUser(final String username, final String password, final Role... roles) {
+		this.userDAO.editUser(username, password, roles);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see kieker.webgui.service.IUserService#getUsers()
+	 */
+	@Override
+	@PreAuthorize("hasRole('ROLE_ADMIN')")
+	@Transactional
+	public List<User> getUsers() {
+		return this.userDAO.getUsers();
 	}
 
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/GlobalPropertiesBean.java
similarity index 99%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/GlobalPropertiesBean.java
index d93a1bdc564dcccc2a1a96b1c0fa1ee6dc8afe84..1f1caa7e7178e21543e90bc6f8541d403fc3a90b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/GlobalPropertiesBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.application;
+package kieker.webgui.web.beans.application;
 
 import java.io.Serializable;
 import java.util.ResourceBundle;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ProjectsBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ProjectsBean.java
index 49bbe49271fa77b98117e941a9c7e7e8f705dd43..2280c6d760bee4b1acf3217b87c55fe1553ba5e4 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ProjectsBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.application;
+package kieker.webgui.web.beans.application;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -27,7 +27,7 @@ import javax.faces.application.FacesMessage;
 import kieker.analysis.model.analysisMetaModel.MIProject;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.beans.view.CurrentProjectOverviewBean;
+import kieker.webgui.web.beans.view.CurrentProjectOverviewBean;
 import kieker.webgui.common.exception.ProjectAlreadyExistingException;
 import kieker.webgui.common.exception.ProjectLoadException;
 import kieker.webgui.common.exception.ProjectNotExistingException;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ThemeSwitcherBean.java
similarity index 97%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ThemeSwitcherBean.java
index 91bb4b3775e1887360876b130fe7ad191396790a..d2b1bd351a50f56dd158d97b7b276dbf322b213d 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/ThemeSwitcherBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.application;
+package kieker.webgui.web.beans.application;
 
 import java.util.Collections;
 import java.util.Map;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/package-info.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/package-info.java
index 07aa9a7350f75b910d9801c5a9173dba62aef592..f79bc88f1f0daefe319ea3b83eeba0560518f055 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/application/package-info.java
@@ -19,5 +19,5 @@
  * 
  * @author Nils Christian Ehmke
  */
-package kieker.webgui.beans.application;
+package kieker.webgui.web.beans.application;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/NewUserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/NewUserBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/NewUserBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/NewUserBean.java
index d86ed59fcd0486838829028844d2a182c8e05762..21ae58927f3bfe21ee2400279a18207dc9548721 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/NewUserBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/NewUserBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.request;
+package kieker.webgui.web.beans.request;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/StringBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/StringBean.java
index caabc4aeb126b04ef40a67065377dd2fa4fa6662..6bde06dd166f1bcda488c16e83eb2b375fec457e 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/StringBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.request;
+package kieker.webgui.web.beans.request;
 
 /**
  * This simple bean can be used to store a string during a request. Furthermore it provides some simple methods to handle strings within the application where a bean
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/package-info.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/package-info.java
index 26cfe25c23162f1f1618067bf0951a560de31731..53adcd24460450fc1b33e2b0c08e90483b44b929 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/request/package-info.java
@@ -19,5 +19,5 @@
  * 
  * @author Nils Christian Ehmke
  */
-package kieker.webgui.beans.request;
+package kieker.webgui.web.beans.request;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java
index a9a6025d2dc05a3007d7a1c014f577c077a7e88c..94e62188a7e75bfb73ac378d4b3391337e8184e0 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.session;
+package kieker.webgui.web.beans.session;
 
 import java.io.Serializable;
 import java.util.Map;
@@ -26,7 +26,7 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
 
-import kieker.webgui.beans.application.GlobalPropertiesBean;
+import kieker.webgui.web.beans.application.GlobalPropertiesBean;
 
 /**
  * This bean contains information about the user of this session (like the properties and configurations). This class is a Spring managed bean with session scope.
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/package-info.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/package-info.java
index ecc09dcefc8c9ef382cc86ca664794b4293531be..64e96c5fe156f7d12e25c29297f04c736f1176ef 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/package-info.java
@@ -19,5 +19,5 @@
  * 
  * @author Nils Christian Ehmke
  */
-package kieker.webgui.beans.session;
+package kieker.webgui.web.beans.session;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
similarity index 99%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
index 81371c948b660275751a20edd41dd71dc98dadc4..7edd84ca24f92f98b5ae4e683f39082e4b024510 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
@@ -49,9 +49,9 @@ import kieker.analysis.plugin.reader.AbstractReaderPlugin;
 import kieker.analysis.repository.AbstractRepository;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.beans.application.GlobalPropertiesBean;
-import kieker.webgui.beans.application.ProjectsBean;
-import kieker.webgui.beans.session.UserBean;
+import kieker.webgui.web.beans.application.GlobalPropertiesBean;
+import kieker.webgui.web.beans.application.ProjectsBean;
+import kieker.webgui.web.beans.session.UserBean;
 import kieker.webgui.common.ClassAndMethodContainer;
 import kieker.webgui.common.exception.LibraryAlreadyExistingException;
 import kieker.webgui.common.exception.LibraryLoadException;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
similarity index 99%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
index ca3f6c4345c14e7286e3d207e889227417e7c140..e8a24cfd5773f73d595f35af9721a5237774297b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.util.Map;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java
similarity index 97%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java
index 2d9b158ac46d320f1d2c196efc834992e35b3415..1a06535093ac0eab2e8271f3aabe6b75cc19fe60 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.io.IOException;
 
@@ -25,8 +25,8 @@ import kieker.analysis.model.analysisMetaModel.MIProject;
 import kieker.analysis.model.analysisMetaModel.MIView;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.beans.application.GlobalPropertiesBean;
-import kieker.webgui.beans.application.ProjectsBean;
+import kieker.webgui.web.beans.application.GlobalPropertiesBean;
+import kieker.webgui.web.beans.application.ProjectsBean;
 import kieker.webgui.common.ClassAndMethodContainer;
 import kieker.webgui.common.exception.DisplayNotFoundException;
 import kieker.webgui.common.exception.ProjectNotExistingException;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
similarity index 99%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
index 678242c146fc1d76e8701316d44d45c44198c469..cb7d9875349605c070af5573d15147bccaf81972 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
@@ -40,8 +40,8 @@ import kieker.analysis.model.analysisMetaModel.impl.MAnalysisMetaModelFactory;
 import kieker.analysis.plugin.AbstractPlugin;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.beans.application.GlobalPropertiesBean;
-import kieker.webgui.beans.application.ProjectsBean;
+import kieker.webgui.web.beans.application.GlobalPropertiesBean;
+import kieker.webgui.web.beans.application.ProjectsBean;
 import kieker.webgui.common.ClassAndMethodContainer;
 import kieker.webgui.common.exception.NewerProjectException;
 import kieker.webgui.common.exception.ProjectLoadException;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java
similarity index 99%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java
index 2245572dc5f60fb0e8551724b9544e21ec22e476..fb1bacde6c1309723ae92702c29ebba6dd937fd8 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -28,7 +28,7 @@ import java.util.List;
 import kieker.analysis.AnalysisController;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
-import kieker.webgui.beans.application.ProjectsBean;
+import kieker.webgui.web.beans.application.ProjectsBean;
 import kieker.webgui.common.exception.AnalysisInitializationException;
 import kieker.webgui.common.exception.AnalysisStateException;
 import kieker.webgui.common.exception.ProjectNotExistingException;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentProjectOverviewBean.java
similarity index 96%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentProjectOverviewBean.java
index 6ccfb24974c91a508c24ff5cac37bc99e6b8bfbe..ac5bc4f76ab55adb7ae4a9b8ce5ae6e179926bae 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentProjectOverviewBean.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import kieker.webgui.beans.application.ProjectsBean;
+import kieker.webgui.web.beans.application.ProjectsBean;
 
 import org.primefaces.event.SelectEvent;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentUserManagementBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java
similarity index 85%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentUserManagementBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java
index 44cff58d35d152a4873063a9bad494467bbf95da..ea0195bb73d240f7a67ed2c9761f72af79b7d11f 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentUserManagementBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java
@@ -14,21 +14,21 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import kieker.webgui.common.IUserManager;
 import kieker.webgui.domain.User;
 import kieker.webgui.domain.User.Role;
+import kieker.webgui.service.IUserService;
 
 /**
  * @author Nils Christian Ehmke
  */
 public final class CurrentUserManagementBean {
 
-	private IUserManager userManagerFacade;
+	private IUserService userService;
 	/**
 	 * This list contains all available users.
 	 */
@@ -42,13 +42,13 @@ public final class CurrentUserManagementBean {
 	}
 
 	/**
-	 * Setter for the property {@link CurrentUserManagementBean#userManagerFacade}.
+	 * Setter for the property {@link CurrentUserManagementBean#userService}.
 	 * 
-	 * @param userManagerFacade
+	 * @param userService
 	 *            The new value for the property.
 	 */
-	public void setUserManagerFacade(final IUserManager userManagerFacade) {
-		this.userManagerFacade = userManagerFacade;
+	public void setUserService(final IUserService userService) {
+		this.userService = userService;
 	}
 
 	/**
@@ -62,7 +62,7 @@ public final class CurrentUserManagementBean {
 	 *            The roles of the new user.
 	 */
 	public void addUser(final String username, final String password, final List<Role> roles) {
-		this.userManagerFacade.addUser(username, password, roles);
+		this.userService.addUser(username, password, roles);
 		// TODO Check that the op was successful before adding the user to our list
 		this.users.add(new User(username, null, roles, true));
 	}
@@ -74,7 +74,7 @@ public final class CurrentUserManagementBean {
 	 *            The name of the user.
 	 */
 	public void removeUser(final String username) {
-		this.userManagerFacade.removeUser(username);
+		this.userService.removeUser(username);
 	}
 
 	/**
@@ -88,7 +88,7 @@ public final class CurrentUserManagementBean {
 	 *            The (new) roles of the user.
 	 */
 	public void editUser(final String username, final String password, final Role... roles) {
-		this.userManagerFacade.editUser(username, password, roles);
+		this.userService.editUser(username, password, roles);
 	}
 
 	/**
@@ -102,7 +102,7 @@ public final class CurrentUserManagementBean {
 	 * Updates the list containing the available users.
 	 */
 	public void updateList() {
-		this.users = this.userManagerFacade.getUsers();
+		this.users = this.userService.getUsers();
 	}
 
 	/**
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/package-info.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/package-info.java
index 1294ccfaea387c1115a5e4fbc6d85776d49071a1..57470cd394f950813f0fb30447ea58441e1e5333 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/package-info.java
@@ -19,5 +19,5 @@
  * 
  * @author Nils Christian Ehmke
  */
-package kieker.webgui.beans.view;
+package kieker.webgui.web.beans.view;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/RoleStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/RoleStringConverter.java
similarity index 97%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/RoleStringConverter.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/RoleStringConverter.java
index 2168bc317864ca3974e485cccaadaf097caa3ade..99b1549844fa63b922f6d2e6f299f2d698c7082b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/converter/RoleStringConverter.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/RoleStringConverter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package kieker.webgui.common.converter;
+package kieker.webgui.web.converter;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/package-info.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/package-info.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/package-info.java
index 54cf3cb2fc0edf4f032f6c6df549ea4dbb97ca49..1bfdcb1baeea3329b0bc445c00eb32036b6140c5 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/impl/package-info.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/converter/package-info.java
@@ -18,4 +18,4 @@
  * @author Nils Christian Ehmke
  *
  */
-package kieker.webgui.common.impl;
\ No newline at end of file
+package kieker.webgui.web.converter;
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_de.properties b/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_de.properties
index dd9d15861ffb82ddf007d2daed82b284be2ba264..f26b740566f94e89239009c6cc6eb437c222de81 100644
--- a/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_de.properties
+++ b/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_de.properties
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #
-# Diese Datei beinhaltet sämtliche Nachrichten, Buttonbeschriftungen etc., 
-# welche innerhalb der Projektübersichtsseite benutzt werden.
+# Diese Datei beinhaltet s\u00e4mtliche Nachrichten, Buttonbeschriftungen etc., 
+# welche innerhalb der Projekt\u00fcbersichtsseite benutzt werden.
 #
 #------------------------------------------------------------------------------
 
@@ -13,6 +13,7 @@ projectName = Projektname
 state = Status
 lastModification = Letzte \u00c4nderung
 owner = Besitzer
+lastEditor = Letzter Bearbeiter
 
 copyProject = Projekt Kopieren
 renameProject = Projekt Umbenennen
diff --git a/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_en.properties b/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_en.properties
index 7e12607f173be8c911bef14dd0c89625d7443824..b915b322536e735dbe708e374cef169166bb39ab 100644
--- a/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_en.properties
+++ b/Kieker.WebGUI/src/main/resources/lang/ProjectOverviewPage_en.properties
@@ -13,6 +13,7 @@ projectName = Project Name
 state = State
 lastModification = Last Modification
 owner = Owner
+lastEditor = Last Editor
 
 copyProject = Copy Project
 renameProject = Rename Project
diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-bean-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-bean-config.xml
index 4cd740b51d111d333276bd9e0827e9dd3c01ea23..a3ccefdbb02d60605cae793dfb5229a4bed7bdec 100644
--- a/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-bean-config.xml
+++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-bean-config.xml
@@ -13,13 +13,16 @@
         <property name="acManager" ref="acManager" />
         <property name="pluginFinder" ref="pluginFinder" />
     </bean>
+    <bean id="userService" class="kieker.webgui.service.impl.UserServiceImpl">
+        <property name="userDAO" ref="userDAO" />
+    </bean>
     <bean id="acManager" class="kieker.webgui.service.impl.util.ACManager">
         <property name="projectDAO" ref="projectDAO" />
     </bean>
-    <bean id="projectsBean" lazy-init="true" class="kieker.webgui.beans.application.ProjectsBean" init-method="initialize">
+    <bean id="projectsBean" lazy-init="true" class="kieker.webgui.web.beans.application.ProjectsBean" init-method="initialize">
         <property name="projectService" ref="projectService" />
     </bean>
-    <bean id="globalPropertiesBean" class="kieker.webgui.beans.application.GlobalPropertiesBean">
+    <bean id="globalPropertiesBean" class="kieker.webgui.web.beans.application.GlobalPropertiesBean">
         <property name="themeCookieName" value="${kieker.webgui.config.lookAndFeel.cookieName}"/>
         <property name="projectOverviewPage" value="${kieker.webgui.page.projectOverview}"/>
         <property name="facesContextThemeKey" value="${kieker.webgui.config.lookAndFeel.facesContextKey}"/>
@@ -29,7 +32,7 @@
         <property name="analysisEditorDefaultGridSize" value="${kieker.webgui.config.analysisEditor.defaultGridSize}"/>
         <property name="analysisEditorDefaultGridColor" value="${kieker.webgui.config.analysisEditor.defaultGridColor}"/>
     </bean>
-    <bean id="themeSwitcherBean" class="kieker.webgui.beans.application.ThemeSwitcherBean">
+    <bean id="themeSwitcherBean" class="kieker.webgui.web.beans.application.ThemeSwitcherBean">
         <!-- This is the map containing the available themes (look and feels). If one wants to add more themes, this is the correct place to do so. -->
         <property name="themes">
             <map>
@@ -66,50 +69,47 @@
             </map>
         </property>
     </bean>
-    <bean destroy-method="destroy" init-method="initialize"  id="userManager" class="kieker.webgui.common.impl.UserManagerImpl">
-        <property name="dataSource" ref="userDataSource" />
-    </bean>
     <bean id="userDAO" class="kieker.webgui.persistence.impl.DerbyUserDAOImpl" init-method="initialize" destroy-method="destroy">
         <property name="dataSource" ref="userDataSource"/>
     </bean>
     
     <!-- The session scoped beans. -->
-    <bean id="userBean" init-method="initialize" class="kieker.webgui.beans.session.UserBean" scope="session"> 
+    <bean id="userBean" init-method="initialize" class="kieker.webgui.web.beans.session.UserBean" scope="session"> 
         <property name="globalPropertiesBean" ref="globalPropertiesBean"/>
     </bean>
     
     <!-- The view scoped beans. -->
-    <bean id="currentAnalysisEditorBean" class="kieker.webgui.beans.view.CurrentAnalysisEditorBean" scope="view"> 
+    <bean id="currentAnalysisEditorBean" class="kieker.webgui.web.beans.view.CurrentAnalysisEditorBean" scope="view"> 
         <property name="globalPropertiesBean" ref="globalPropertiesBean"/>
         <property name="projectService" ref="projectService" />
         <property name="projectsBean" ref="projectsBean" />
         <property name="currentAnalysisEditorGraphBean" ref="currentAnalysisEditorGraphBean" />
         <property name="userBean" ref="userBean" />
     </bean>
-    <bean id="currentAnalysisEditorGraphBean" class="kieker.webgui.beans.view.CurrentAnalysisEditorGraphBean" scope="view"/> 
-    <bean id="currentCockpitBean" class="kieker.webgui.beans.view.CurrentCockpitBean" scope="view"> 
+    <bean id="currentAnalysisEditorGraphBean" class="kieker.webgui.web.beans.view.CurrentAnalysisEditorGraphBean" scope="view"/> 
+    <bean id="currentCockpitBean" class="kieker.webgui.web.beans.view.CurrentCockpitBean" scope="view"> 
         <property name="projectsBean" ref="projectsBean"/>
         <property name="projectService" ref="projectService" />
     </bean>
-    <bean id="currentCockpitEditorBean" class="kieker.webgui.beans.view.CurrentCockpitEditorBean" scope="view"> 
+    <bean id="currentCockpitEditorBean" class="kieker.webgui.web.beans.view.CurrentCockpitEditorBean" scope="view"> 
         <property name="globalPropertiesBean" ref="globalPropertiesBean"/>
         <property name="projectService" ref="projectService" />
         <property name="projectsBean" ref="projectsBean"/>
     </bean>
-    <bean id="currentControllerBean" class="kieker.webgui.beans.view.CurrentControllerBean" scope="view"> 
+    <bean id="currentControllerBean" class="kieker.webgui.web.beans.view.CurrentControllerBean" scope="view"> 
         <property name="projectsBean" ref="projectsBean"/>
         <property name="projectService" ref="projectService" />
     </bean>
-    <bean id="currentProjectOverviewBean" class="kieker.webgui.beans.view.CurrentProjectOverviewBean" scope="view" init-method="initialialize"> 
+    <bean id="currentProjectOverviewBean" class="kieker.webgui.web.beans.view.CurrentProjectOverviewBean" scope="view" init-method="initialialize"> 
         <property name="projectsBean" ref="projectsBean"/>
     </bean>
-    <bean id="currentUserManagementBean" class="kieker.webgui.beans.view.CurrentUserManagementBean" init-method="initialialize" scope="view"> 
-        <property name="userManagerFacade" ref="userManager"/>
+    <bean id="currentUserManagementBean" class="kieker.webgui.web.beans.view.CurrentUserManagementBean" init-method="initialialize" scope="view"> 
+        <property name="userService" ref="userService"/>
     </bean>
     
     <!-- The request scoped beans. -->
-    <bean id="stringBean" class="kieker.webgui.beans.request.StringBean" scope="request"/> 
-    <bean id="newUserBean" class="kieker.webgui.beans.request.NewUserBean" scope="request"/>
+    <bean id="stringBean" class="kieker.webgui.web.beans.request.StringBean" scope="request"/> 
+    <bean id="newUserBean" class="kieker.webgui.web.beans.request.NewUserBean" scope="request"/>
     
     <!-- The enums. -->
     <util:constant id="ROLE_USER" static-field="kieker.webgui.domain.User.Role.ROLE_USER"/>
diff --git a/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml
index 18e9b18f249f33733c647a8c3e9e1ead61797771..719740a3113693aaf36eef6ed77eb9edb539d80d 100644
--- a/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml
@@ -69,14 +69,18 @@
                             <h:outputText value="#{projectsBean.getAnalysisControllerState(project)}"/>  
                         </p:column>
 
+                        <p:column headerText="#{localizedProjectOverviewMessages.owner}" style="text-align: center">   
+                            <h:outputText value="N/A" />  
+                        </p:column>  
+                        
                         <p:column headerText="#{localizedProjectOverviewMessages.lastModification}" sortBy="#{projectsBean.getCurrTimeStamp(project)}" style="text-align: center">  
                             <h:outputText value="#{projectsBean.getCurrTimeStamp(project)}" />  
                         </p:column>  
-
-                        <p:column headerText="#{localizedProjectOverviewMessages.owner}" style="text-align: center" rendered="false">   
+                        
+                        <p:column headerText="#{localizedProjectOverviewMessages.lastEditor}" style="text-align: center">   
                             <h:outputText value="N/A" />  
                         </p:column>  
-
+                        
                     </p:dataTable>  
                 </h:form>
             </ui:define>