diff --git a/admin/appinfo/app.php b/admin/appinfo/app.php
index 9e39a0524435ad04776c02a8ce5d3e268b435a68..2426adc9f8acaddcdb67c0c29d584804329b43e3 100644
--- a/admin/appinfo/app.php
+++ b/admin/appinfo/app.php
@@ -1,14 +1,10 @@
 <?php
 
 OC_APP::register( array( "order" => 1, "id" => "admin", "name" => "Administration" ));
-if( OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' ))
-{
-	OC_APP::addNavigationEntry( array( "id" => "admin_index", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "index.php" ), "icon" => OC_HELPER::imagePath( "admin", "navicon.png" ), "name" => "Administration" ));
-}
-OC_APP::addAdminPage( array( "id" => "core_basic", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "basic.php" ), "name" => "Basic Settings" ));
-OC_APP::addAdminPage( array( "id" => "core_system", "order" => 2, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" => "System settings" ));
-OC_APP::addAdminPage( array( "id" => "core_users", "order" => 3, "href" => OC_HELPER::linkTo( "admin", "users.php" ), "name" => "Users" ));
-OC_APP::addAdminPage( array( "id" => "core_apps", "order" => 4, "href" => OC_HELPER::linkTo( "admin", "apps.php" ), "name" => "Apps" ));
-OC_APP::addAdminPage( array( "id" => "core_plugins", "order" => 5, "href" => OC_HELPER::linkTo( "admin", "plugins.php" ), "name" => "Plugins" ));
+
+OC_APP::addAdminPage( array( "id" => "core_system", "order" => 2, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" => "System settings", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_users", "order" => 3, "href" => OC_HELPER::linkTo( "admin", "users.php" ), "name" => "Users", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_apps", "order" => 4, "href" => OC_HELPER::linkTo( "admin", "apps.php" ), "name" => "Apps", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_plugins", "order" => 5, "href" => OC_HELPER::linkTo( "admin", "plugins.php" ), "name" => "Plugins", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
 
 ?>
diff --git a/admin/apps.php b/admin/apps.php
index cd686fadf16aecc53308897100f89b9f7fa84321..dc7b51bb820a5acbf58e1e1f0267e570fea43fa7 100644
--- a/admin/apps.php
+++ b/admin/apps.php
@@ -24,14 +24,14 @@
 require_once('../lib/base.php');
 require( 'template.php' );
 if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
-	header( "Location: ".OC_HELPER::linkTo( "index.php" ));
+	header( "Location: ".OC_HELPER::linkTo( "", "index.php" ));
 	exit();
 }
 
 
 // Load the files we need
-OC_UTIL::addStyle( "files", "files" );
-OC_UTIL::addScript( "files", "files" );
+//OC_UTIL::addStyle( "", "files" );
+//OC_UTIL::addScript( "", "files" );
 
 
 $categories=OC_OCSCLIENT::getCategories();
@@ -39,7 +39,8 @@ $apps=OC_OCSCLIENT::getApplications($categories);
 
 
 // return template
-$tmpl = new OC_TEMPLATE( "files", "index", "user" );
+$tmpl = new OC_TEMPLATE( "admin", "apps", "admin" );
+
 $tmpl->assign( "categories", $categories );
 $tmpl->assign( "apps", $apps );
 $tmpl->printPage();
@@ -47,3 +48,4 @@ $tmpl->printPage();
 
 
 ?>
+
diff --git a/admin/index.php b/admin/index.php
index 2446ebc50aa363b5fce851e2a3c8f3788c197896..80e70d13f9aa2261202802e1f31b3e1fcae56d38 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -24,7 +24,7 @@
 require_once('../lib/base.php');
 require( 'template.php' );
 if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
-	header( "Location: ".OC_HELPER::linkTo( "index.php" ));
+	header( "Location: ".OC_HELPER::linkTo( "","index.php" ));
 	exit();
 }
 
diff --git a/admin/js/users.js b/admin/js/users.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d59a2efb7c7c4cc92aea2d5116fe26c294493a5
--- /dev/null
+++ b/admin/js/users.js
@@ -0,0 +1,101 @@
+$(document).ready(function(){
+	// Dialog for adding users
+	$( "#adduser-form" ).dialog({
+		autoOpen: false,
+		height: 300,
+		width: 350,
+		modal: true,
+		buttons: {
+			"Create an account": function() {
+				$( this ).dialog( "close" );
+			},
+			Cancel: function() {
+				$( this ).dialog( "close" );
+			}
+		},
+		close: function() {
+			allFields.val( "" ).removeClass( "ui-state-error" );
+		}
+	});
+
+	$( "#adduser-button" )
+		.click(function() {
+			$( "#adduser-form" ).dialog( "open" );
+			return false;
+		});
+
+	// Dialog for adding users
+	$( "#edituser-form" ).dialog({
+		autoOpen: false,
+		height: 300,
+		width: 350,
+		modal: true,
+		buttons: {
+			"Edit password": function() {
+				$( this ).dialog( "close" );
+			},
+			Cancel: function() {
+				$( this ).dialog( "close" );
+			}
+		},
+		close: function() {
+			allFields.val( "" ).removeClass( "ui-state-error" );
+		}
+	});
+
+	$( ".edituser-button" )
+		.click(function() {
+			$( "#edituser-form" ).dialog( "open" );
+			return false;
+		});
+
+	// Dialog for adding users
+	$( "#removeuser-form" ).dialog({
+		autoOpen: false,
+		height: 300,
+		width: 350,
+		modal: true,
+		buttons: {
+			"Remove user": function() {
+				$( this ).dialog( "close" );
+			},
+			Cancel: function() {
+				$( this ).dialog( "close" );
+			}
+		},
+		close: function() {
+			allFields.val( "" ).removeClass( "ui-state-error" );
+		}
+	});
+
+	$( ".removeuser-button" )
+		.click(function() {
+			$( "#removeuser-form" ).dialog( "open" );
+			return false;
+		});
+
+	// Dialog for adding users
+	$( "#removegroup-form" ).dialog({
+		autoOpen: false,
+		height: 300,
+		width: 350,
+		modal: true,
+		buttons: {
+			"Remove group": function() {
+				$( this ).dialog( "close" );
+			},
+			Cancel: function() {
+				$( this ).dialog( "close" );
+			}
+		},
+		close: function() {
+			allFields.val( "" ).removeClass( "ui-state-error" );
+		}
+	});
+
+	$( ".removegroup-button" )
+		.click(function() {
+			$( "#removegroup-form" ).dialog( "open" );
+			return false;
+		});
+} );
diff --git a/css/styles.css b/css/styles.css
index 4fc5a39b8c0a81ade17da15a0f8b9c41050ffe9f..d6e5ea8fcc08aa8e0c3114ea8d20d56122a20b04 100644
--- a/css/styles.css
+++ b/css/styles.css
@@ -633,3 +633,18 @@ p.actions a.delete
     border: 1px solid #CCC;
     text-align: right;
 }
+
+li.error{
+	list-style:none;
+	width: 640px;
+	margin: 4em auto;
+	padding: 1em 1em 1em 4em;
+	background-color: #FEE;
+	background-image: url(../img/task-attention.png);
+	background-position: 0.8em 0.8em;
+	background-repeat: no-repeat;
+	border: 1px solid #CCC;
+	-moz-border-radius: 10px;
+	-webkit-border-radius: 10px;
+	border-radius: 10px;
+}
\ No newline at end of file
diff --git a/files/appinfo/app.php b/files/appinfo/app.php
index a3532e805d2ef5cabf00de3def640307b1015b75..eff45cbe6e3ade3530970a3bd1a586db67626a1a 100644
--- a/files/appinfo/app.php
+++ b/files/appinfo/app.php
@@ -3,6 +3,6 @@
 OC_APP::register( array( "order" => 2, "id" => "files", "name" => "Files" ));
 
 OC_APP::addNavigationEntry( array( "id" => "files_index", "order" => 1, "href" => OC_HELPER::linkTo( "files", "index.php" ), "icon" => OC_HELPER::imagePath( "files", "navicon.png" ), "name" => "Files" ));
-OC_APP::addAdminPage( array( "order" => 1, "href" => OC_HELPER::linkTo( "files", "admin.php" ), "name" => "Files" ));
+OC_APP::addSettingsPage( array( "order" => 1, "href" => OC_HELPER::linkTo( "files", "admin.php" ), "name" => "Files" ));
 
 ?>
diff --git a/help/appinfo/app.php b/help/appinfo/app.php
new file mode 100644
index 0000000000000000000000000000000000000000..661b554f417130f422ffadd3b88b61e66269e358
--- /dev/null
+++ b/help/appinfo/app.php
@@ -0,0 +1,5 @@
+<?php
+
+OC_APP::register( array( "id" => "help", "name" => "Help" ));
+
+?>
diff --git a/help/index.php b/help/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..dafbd05cf333be72368e12cff888b47e7e29d2a6
--- /dev/null
+++ b/help/index.php
@@ -0,0 +1,34 @@
+<?php
+
+require_once('../lib/base.php');
+require( 'template.php' );
+if( !OC_USER::isLoggedIn()){
+    header( "Location: ".OC_HELPER::linkTo( "index.php" ));
+    exit();
+}
+
+OC_APP::setActiveNavigationEntry( "help" );
+$settings = array();
+
+// Do the work ...
+if( $_POST["submit"] )
+{
+    if( $_POST["newpassword"] != $_POST["newpasswordconfirm"] ){
+        // Say "Passwords not equal"
+    }
+    else{
+        if( OC_USER::checkPassword( $_SESSION["username"], $_POST["password"] )){
+            // Set password
+            OC_USER::setPassord( $_SESSION["username"], $_POST["newpassword"] );
+        }
+        else{
+            // Say "old password bad"
+        }
+    }
+}
+
+$tmpl = new OC_TEMPLATE( "help", "index", "user" );
+$tmpl->assign( "settings", $settings );
+$tmpl->printPage();
+
+?>
diff --git a/help/templates/index.php b/help/templates/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..945969d88c59e9b9b51654f91803ac645e6ca514
--- /dev/null
+++ b/help/templates/index.php
@@ -0,0 +1,8 @@
+<?php
+/*
+ * Template for settings page
+ */
+?>
+<h1>Help</h1>
+
+Help.
\ No newline at end of file
diff --git a/img/layout/back.png b/img/layout/back.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d5c841335d19c0f64b9b6aafdc275dd09a2bb7
Binary files /dev/null and b/img/layout/back.png differ
diff --git a/img/layout/help.png b/img/layout/help.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d5c841335d19c0f64b9b6aafdc275dd09a2bb7
Binary files /dev/null and b/img/layout/help.png differ
diff --git a/img/layout/logout.png b/img/layout/logout.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d5c841335d19c0f64b9b6aafdc275dd09a2bb7
Binary files /dev/null and b/img/layout/logout.png differ
diff --git a/img/layout/settings.png b/img/layout/settings.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d5c841335d19c0f64b9b6aafdc275dd09a2bb7
Binary files /dev/null and b/img/layout/settings.png differ
diff --git a/lib/app.php b/lib/app.php
index 9f1ce6f104714d85028b0b013c5d778e45f6441f..5db3e047fd79a2de868840264e0b2736efc0ee72 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -34,7 +34,6 @@ class OC_APP{
 	static private $settingspages = array();
 	static private $navigation = array();
 	static private $subnavigation = array();
-	static private $personalmenu = array();
 
 	/**
 	 * @brief loads all apps
@@ -53,7 +52,7 @@ class OC_APP{
 		}
 
 		// Our very own core apps are hardcoded
-		foreach( array( "admin", "files", "log", "settings" ) as $app ){
+		foreach( array( "admin", "files", "log", "help", "settings" ) as $app ){
 			require( "$app/appinfo/app.php" );
 		}
 
@@ -165,31 +164,20 @@ class OC_APP{
 	 * property from all other entries. The templates can use this for
 	 * highlighting the current position of the user.
 	 */
-	public static function activateNavigationEntry( $id ){
+	public static function setActiveNavigationEntry( $id ){
 		self::$activeapp = $id;
 		return true;
 	}
 
 	/**
-	 * @brief adds an entry to the personal menu
-	 * @param $data array containing the data
-	 * @returns true/false
-	 *
-	 * This function adds a new entry to the personal menu visible to users
-	 * only. $data is an associative array.
-	 * The following keys are required:
-	 *   - id: unique id for this entry ("logout")
-	 *   - href: link to the page
-	 *   - name: Human readable name ("Logout")
+	 * @brief gets the active Menu entry
+	 * @returns id or empty string
 	 *
-	 * The following keys are optional:
-	 *   - order: integer, that influences the position of your application in
-	 *     the personal menu. Lower values come first.
+	 * This function returns the id of the active navigation entry (set by
+	 * setActiveNavigationEntry
 	 */
-	public static function addPersonalMenuEntry( $data ){
-		// TODO: write function
-		OC_APP::$personalmenu[] = $data;
-		return true;
+	public static function getActiveNavigationEntry(){
+		return self::$activeapp;
 	}
 
 	/**
@@ -255,18 +243,6 @@ class OC_APP{
 		return OC_APP::$navigation;
 	}
 
-	/**
-	 * @brief Returns the personal menu
-	 * @returns associative array
-	 *
-	 * This function returns an array containing all personal menu entries
-	 * added. The entries are sorted by the key "order" ascending.
-	 */
-	public static function getPersonalMenu(){
-		// TODO: write function
-		return OC_APP::$personalmenu;
-	}
-
 	/**
 	 * @brief Returns the admin pages
 	 * @returns associative array
diff --git a/lib/base.php b/lib/base.php
index 31d4142900f0cb464f1161d0e93e93e71cd69d79..9ecf7db07784b2bff8acfe2205c3d94ad4c03187 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -85,6 +85,7 @@ require_once('log.php');
 require_once('user.php');
 require_once('group.php');
 require_once('ocs.php');
+require_once('ocsclient.php');
 require_once('connect.php');
 require_once('remotestorage.php');
 require_once('plugin.php');
@@ -104,7 +105,6 @@ if(!$error and !$RUNTIME_NOSETUPFS ){
 }
 
 // Add the stuff we need always
-OC_APP::addPersonalMenuEntry( array( "order" => 1000, "href" => OC_HELPER::linkTo( "", "index.php?logout=1" ), "name" => "Logout" ));
 OC_UTIL::addScript( "jquery-1.5.min" );
 OC_UTIL::addScript( "jquery-ui-1.8.10.custom.min" );
 OC_UTIL::addScript( "js" );
@@ -223,7 +223,7 @@ class OC_UTIL {
 
 	/**
 	 * check if the current server configuration is suitable for ownCloud
-	 * @return array with error messages
+	 * @return array arrays with error messages and hints
 	 */
 	public static function checkServer(){
 		global $SERVERROOT;
@@ -233,14 +233,26 @@ class OC_UTIL {
 		$CONFIG_BACKUPDIRECTORY = OC_CONFIG::getValue( "backupdirectory", "$SERVERROOT/backup" );
 		$CONFIG_INSTALLED = OC_CONFIG::getValue( "installed", false );
 		$errors=array();
-		
+
 		//check for database drivers
 		if(!is_callable('sqlite_open') and !is_callable('mysql_connect')){
-			$errors[]='No database drivers (sqlite or mysql) installed.<br/>';
+			$errors[]=array('error'=>'No database drivers (sqlite or mysql) installed.<br/>','hint'=>'');//TODO: sane hint
 		}
 		$CONFIG_DBTYPE = OC_CONFIG::getValue( "dbtype", "sqlite" );
 		$CONFIG_DBNAME = OC_CONFIG::getValue( "dbname", "owncloud" );
 		
+		//try to get the username the httpd server runs on, used in hints
+		$stat=stat($_SERVER['DOCUMENT_ROOT']);
+		if(is_callable('posix_getpwuid')){
+			$serverUser=posix_getpwuid($stat['uid']);
+			$serverUser='\''.$serverUser['name'].'\'';
+		}else{
+			$serverUser='\'www-data\' for ubuntu/debian';//TODO: try to detect the distro and give a guess based on that
+		}
+		
+		//common hint for all file permissons error messages
+		$permissionsHint="Permissions can usually be fixed by setting the owner of the directory to the user the web server runs as ($serverUser)";
+		
 		//check for correct file permissions
 		if(!stristr(PHP_OS, 'WIN')){
 			if($CONFIG_DBTYPE=='sqlite'){
@@ -252,7 +264,7 @@ class OC_UTIL {
 						clearstatcache();
 						$prems=substr(decoct(fileperms($file)),-3);
 						if(substr($prems,2,1)!='0'){
-							$errors[]='SQLite database file ('.$file.') is readable from the web<br/>';
+							$errors[]=array('error'=>'SQLite database file ('.$file.') is readable from the web<br/>','hint'=>$permissionsHint);
 						}
 					}
 				}
@@ -263,7 +275,7 @@ class OC_UTIL {
 				clearstatcache();
 				$prems=substr(decoct(fileperms($CONFIG_DATADIRECTORY_ROOT)),-3);
 				if(substr($prems,2,1)!='0'){
-					$errors[]='Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web<br/>';
+					$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web<br/>','hint'=>$permissionsHint);
 				}
 			}
 			if( OC_CONFIG::getValue( "enablebackup", false )){
@@ -273,7 +285,7 @@ class OC_UTIL {
 					clearstatcache();
 					$prems=substr(decoct(fileperms($CONFIG_BACKUPDIRECTORY)),-3);
 					if(substr($prems,2,1)!='0'){
-						$errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web<br/>';
+						$errors[]=array('error'=>'Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web<br/>','hint'=>$permissionsHint);
 					}
 				}
 			}
@@ -281,11 +293,11 @@ class OC_UTIL {
 			//TODO: premisions checks for windows hosts
 		}
 		if(!is_writable($CONFIG_DATADIRECTORY_ROOT)){
-			$errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') not writable by ownCloud<br/>';
+			$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') not writable by ownCloud<br/>','hint'=>$permissionsHint);
 		}
-		
+
 		//TODO: check for php modules
-		
+
 		return $errors;
 	}
 }
diff --git a/lib/template.php b/lib/template.php
index c36b1e7a36743925be5306a262eddfa89264374a..0e1c268efaa4c1010d5aeed212beaf84f074b828 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -190,11 +190,24 @@ class OC_TEMPLATE{
 			{
 				$page = new OC_TEMPLATE( "core", "layout.user" );
 				// Add menu data
+
+				// Add navigation entry
+				$page->assign( "navigation", OC_APP::getNavigation());
 			}
 			elseif( $this->renderas == "admin" )
 			{
 				$page = new OC_TEMPLATE( "core", "layout.admin" );
 				// Add menu data
+				$navigation = array();
+				if( OC_GROUP::inGroup( $_SESSION["user_id"], "admin" )){
+					foreach( OC_APP::getAdminPages() as $i ){
+						$navigation[] = $i;
+					}
+				}
+				foreach( OC_APP::getSettingsPages() as $i ){
+					$navigation[] = $i;
+				}
+				$page->assign( "navigation", $navigation );
 			}
 			else
 			{
@@ -210,10 +223,6 @@ class OC_TEMPLATE{
 				$page->append( "cssfiles", "$WEBROOT/$style.css" );
 			}
 
-			// Add navigation entry and personal menu
-			$page->assign( "navigation", OC_APP::getNavigation());
-			$page->assign( "personalmenu", OC_APP::getPersonalMenu());
-
 			// Add css files and js files
 			$page->assign( "content", $data );
 			return $page->fetchPage();
diff --git a/log/appinfo/app.php b/log/appinfo/app.php
index d3e848e960615ea2c9a49a943ed1df1afc61ccde..fd53d1ec225c1033751960fd933f335262f51683 100644
--- a/log/appinfo/app.php
+++ b/log/appinfo/app.php
@@ -1,6 +1,6 @@
 <?php
 
 OC_APP::register( array( "order" => 1, "id" => "log", "name" => "Log" ));
-OC_APP::addPersonalMenuEntry( array( "order" => 2, "href" => OC_HELPER::linkTo( "log", "index.php" ), "name" => "Log" ));
+OC_APP::addSettingsPage( array( "order" => 2, "href" => OC_HELPER::linkTo( "log", "index.php" ), "name" => "Log", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
 
 ?>
diff --git a/log/index.php b/log/index.php
index a401a38fa1ae98f09f4fc32ed020bc0c8de26cc6..23194f18a61bcdb64453d21838a51a9067e25cd3 100644
--- a/log/index.php
+++ b/log/index.php
@@ -37,7 +37,7 @@ foreach( $logs as &$i ){
     $i["action"] = OC_LOG::$TYPE[$i['type']];
 }
 
-$tmpl = new OC_TEMPLATE( "log", "index", "user" );
+$tmpl = new OC_TEMPLATE( "log", "index", "admin" );
 $tmpl->assign( "logs", $logs );
 $tmpl->printPage();
 
diff --git a/plugins/blacklist.txt b/plugins/blacklist.txt
index 08c79e5e75ee871662f417ef0c987d0e02bad5c9..e113a39d0b7a41dbc3c67ab2f93bc0ba70e0da75 100644
--- a/plugins/blacklist.txt
+++ b/plugins/blacklist.txt
@@ -2,3 +2,4 @@ audioplayer
 ldap
 test
 textviewer
+publiclink
diff --git a/settings/appinfo/app.php b/settings/appinfo/app.php
index a781389303685788c17ff5c2b5e88905df8c6896..5f78b83dc23a7d282cdef0cce99472ed9a674c7a 100644
--- a/settings/appinfo/app.php
+++ b/settings/appinfo/app.php
@@ -1,6 +1,5 @@
 <?php
 
 OC_APP::register( array( "id" => "settings", "name" => "Settings" ));
-OC_APP::addPersonalMenuEntry( array( "order" => 1, "href" => OC_HELPER::linkTo( "settings", "index.php" ), "name" => "Settings" ));
 
 ?>
diff --git a/settings/img/information.png b/settings/img/information.png
new file mode 100644
index 0000000000000000000000000000000000000000..cbabb0e54a5f50e447982e63d9b9777c1bab64c0
Binary files /dev/null and b/settings/img/information.png differ
diff --git a/settings/index.php b/settings/index.php
index 85e4281c919b52b3c0be3c97270ef15e6e787941..31db326f6bc7cabfca607dbb7d1b0d9cc2bf429d 100644
--- a/settings/index.php
+++ b/settings/index.php
@@ -7,27 +7,8 @@ if( !OC_USER::isLoggedIn()){
     exit();
 }
 
-$settings = array();
 
-// Do the work ...
-if( $_POST["submit"] )
-{
-    if( $_POST["newpassword"] != $_POST["newpasswordconfirm"] ){
-        // Say "Passwords not equal"
-    }
-    else{
-        if( OC_USER::checkPassword( $_SESSION["username"], $_POST["password"] )){
-            // Set password
-            OC_USER::setPassord( $_SESSION["username"], $_POST["newpassword"] );
-        }
-        else{
-            // Say "old password bad"
-        }
-    }
-}
-
-$tmpl = new OC_TEMPLATE( "settings", "index", "user" );
-$tmpl->assign( "settings", $settings );
+$tmpl = new OC_TEMPLATE( "settings", "index", "admin" );
 $tmpl->printPage();
 
 ?>
diff --git a/settings/templates/index.php b/settings/templates/index.php
index 20410e06d12aab935a9990e2129ae9621d148cb7..106d313c014473e615b2af8bc9ba4e360688850c 100644
--- a/settings/templates/index.php
+++ b/settings/templates/index.php
@@ -5,20 +5,4 @@
 ?>
 <h1>Settings</h1>
 
-<form action="" type="">
-	<p>
-		<span>New password:</span>
-		<input type="password" name="newpassword" value="">
-	</p>
-	<p>
-		<span>Confirm new password:</span>
-		<input type="password" name="newpasswordconfirm" value="">
-	</p>
-	<p>
-		<span>Old password:</span>
-		<input type="password" name="password" value="">
-	</p>
-	<p>
-		<input type="submit" name="submit" value="Send">
-	</p>
-</form>
+Welcome to the settings! Bla bla bla
\ No newline at end of file
diff --git a/templates/error.php b/templates/error.php
index e8f56d63bd17163a0fb2c033380cbc806e45f1f1..5b71c1ef7516d6177cc3414f6707fcfaab8adebf 100644
--- a/templates/error.php
+++ b/templates/error.php
@@ -5,10 +5,12 @@
 ?>
 <div id="login">
 	<img src="<?php echo image_path("", "owncloud-logo-medium-white.png"); ?>" alt="ownCloud" />
-	<br/><br/><br/><br/>
 	<ul>
 		<?php foreach($_["errors"] as $error):?>
-			<li><?php echo $error ?></li>
+			<li class='error'>
+				<?php echo $error['error'] ?><br/>
+				<p class='hint'><?php echo $error['hint'] ?></p>
+			</li>
 		<?php endforeach ?>
 	</ul>
 </div>
diff --git a/templates/layout.admin.php b/templates/layout.admin.php
index 85eba13827432c104288a3abd0009af705ba3f4b..ea352a0fb71bcf01937b606fbfd6e191bdd9cc50 100644
--- a/templates/layout.admin.php
+++ b/templates/layout.admin.php
@@ -22,20 +22,20 @@
 			<a href="<?php echo link_to("", "index.php"); ?>" title="" id="owncloud"><img src="<?php echo image_path("", "owncloud-logo-small-white.png"); ?>" alt="ownCloud" /></a>
 
 			<div id="user">
-				<a id="user_menu_link" href="" title=""><? echo $_SESSION["user_id"] ?></a>
-				<ul id="user_menu">
-					<?php foreach($_["personalmenu"] as $entry): ?>
-						<li><a href="<?php echo $entry["href"]; ?>" title=""><?php echo $entry["name"]; ?></a></li>
-					<?php endforeach; ?>
-				</ul>
+				<a href="<?php echo link_to("","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/back.png"); ?>"></a>
+				<a href="<?php echo link_to("settings","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/settings.png"); ?>"></a>
+				<a href="<?php echo link_to("help","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/help.png"); ?>"></a>
+				<a href="<?php echo link_to("","index.php?logout=true"); ?>" title=""><img src="<?php echo image_path("", "layout/logout.png"); ?>"></a>
 			</div>
 		</div>
 
 		<div id="main">
 			<div id="plugins">
 				<ul>
-					<li><a style="background-image:url(<?php echo image_path("admin", "navicon.png"); ?>)" href="<?php echo link_to("admin", "index.php"); ?>" title="">Administration</a></li>
-					<li><a style="background-image:url(<?php echo image_path("", "actions/arrow-left.png"); ?>)" href="<?php echo link_to("", "index.php"); ?>" title="">Back</a></li>
+					<li><a style="background-image:url(<?php echo image_path("settings", "information.png"); ?>)" href="<?php echo link_to("settings", "index.php"); ?>" title="">Information</a></li>
+					<?php foreach($_["navigation"] as $entry):?>
+						<li><a style="background-image:url(<?php echo $entry["icon"]; ?>)" href="<?php echo $entry["href"]; ?>" title=""><?php echo $entry["name"] ?></a></li>
+					<?php endforeach; ?>
 				</ul>
 			</div>
 
diff --git a/templates/layout.user.php b/templates/layout.user.php
index 9fc4f97e1dcdf5d77800e6b8eb0de7f698b15ed4..be14cc0fc0d61bdf7ed772e999393a8e7d8e34a9 100644
--- a/templates/layout.user.php
+++ b/templates/layout.user.php
@@ -22,12 +22,12 @@
 			<a href="<?php echo link_to("", "index.php"); ?>" title="" id="owncloud"><img src="<?php echo image_path("", "owncloud-logo-small-white.png"); ?>" alt="ownCloud" /></a>
 
 			<div id="user">
-				<a id="user_menu_link" href="" title=""><? echo $_SESSION["user_id"] ?></a>
-				<ul id="user_menu">
-					<?php foreach($_["personalmenu"] as $entry): ?>
-						<li><a href="<?php echo $entry["href"]; ?>" title=""><?php echo $entry["name"]; ?></a></li>
-					<?php endforeach; ?>
-				</ul>
+				<?php if( OC_APP::getActiveNavigationEntry() == "help" ): ?>
+					<a href="<?php echo link_to("","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/back.png"); ?>"></a>
+				<?php endif; ?>
+				<a href="<?php echo link_to("settings","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/settings.png"); ?>"></a>
+				<a href="<?php echo link_to("help","index.php"); ?>" title=""><img src="<?php echo image_path("", "layout/help.png"); ?>"></a>
+				<a href="<?php echo link_to("","index.php"); ?>?logout=true" title=""><img src="<?php echo image_path("", "layout/logout.png"); ?>"></a>
 			</div>
 		</div>