diff --git a/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java
new file mode 100644
index 0000000000..ee8e09ce82
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java
@@ -0,0 +1,16 @@
+package se.su.dsv.scipro.basepanels;
+
+import org.apache.wicket.Page;
+
+import se.su.dsv.scipro.components.AbstractMenuPanel;
+
+public abstract class AbstractBaseMenuPanel extends AbstractMenuPanel {
+	private static final long serialVersionUID = 3738086567246191811L;
+	public AbstractBaseMenuPanel(final String id,final Class<? extends Page> menuContainerCommonSuperClass, final Class<? extends Page> containerClass) {
+		super(id,menuContainerCommonSuperClass,containerClass);	
+	}
+	@Override
+	protected MenuType getMenuType() {
+		return MenuType.TAB;
+	}
+}
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html
index 75b642fb2e..f9857256a4 100644
--- a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html
+++ b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html
@@ -1,13 +1,19 @@
 <!DOCTYPE html>
-<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
 <body>
-<wicket:panel>
-	<header id="main-header" class="span-24">
-      <div class="prepend-1 span-5">
-         <h1 id="logo"><a href="#" wicket:id="homeLink" title="SciPro">SciPro</a></h1>
-      </div>
-      <div wicket:id="mainMenuPanel"></div>
-    </header>
-</wicket:panel>
+	<wicket:panel>
+		<header id="main-header" class="span-24">
+			<div class="prepend-1 span-5">
+				<h1 id="logo">
+					<a href="#" wicket:id="homeLink" title="SciPro">SciPro</a>
+				</h1>
+			</div>
+			<div class="prepend-2 span-15 last user-links"
+				wicket:id="userLinksPanel"></div>
+			<div wicket:id="mainMenuPanel" class="main-menu prepend-6"></div>
+			<div wicket:id="serviceMenuPanel" class="service-menu"></div>
+		</header>
+	</wicket:panel>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java
index e1c3763515..d270f8c03b 100644
--- a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java
+++ b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java
@@ -1,9 +1,7 @@
 package se.su.dsv.scipro.basepanels;
 
 import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.panel.EmptyPanel;
 import org.apache.wicket.markup.html.panel.Panel;
 
 import se.su.dsv.scipro.SciProApplication;
@@ -14,17 +12,13 @@ import se.su.dsv.scipro.SciProApplication;
  *
  */
 public class HeaderPanel extends Panel {
-
 	private static final long serialVersionUID = 1L;
-
 	public HeaderPanel(String id, Class<? extends Page> containerClass) {
 		super(id);
-		
 		add(new BookmarkablePageLink<Void>("homeLink", SciProApplication.get().getHomePage()));
-		
-		MainMenuPanel mainMenuPanel = new MainMenuPanel("mainMenuPanel", containerClass);
-		add(mainMenuPanel);
-		
+		add(new MainMenuPanel("mainMenuPanel", containerClass));
+		add(new ServiceMenuPanel("serviceMenuPanel", containerClass));
+		add(new UserLinksPanel("userLinksPanel"));
 	}
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html
deleted file mode 100644
index 4a61b067fd..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
-<body>
-<wicket:panel>
-<nav id="main-nav">
-    <div class="span-18 last">
-        <div class="prepend-2 span-15 last" id="user-links" wicket:id="userLinksPanel"></div>
-        <div class="span-18 last">
-            <ul id="nav-list">
-              <li class="nav-list-item" id="home-menu-item" wicket:id="homeMenuItem"></li>
-              <li class="nav-list-item" id="messages-menu-item" wicket:id="messagesMenuItem"></li>
-              <li class="nav-list-item" id="project-menu-item" wicket:id="projectMenuItem"></li>
-              <li class="nav-list-item" id="supervisor-menu-item" wicket:id="supervisorMenuItem"></li>
-              <li class="nav-list-item" id="resources-menu-item" wicket:id="resourcesMenuItem"></li>
-              <li class="nav-list-item" id="admin-menu-item" wicket:id="adminMenuItem"></li>
-            </ul>
-        </div>
-    </div>
-    
-</nav>
-</wicket:panel>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java
index 1598d646fe..9f10150a21 100644
--- a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java
+++ b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java
@@ -4,123 +4,25 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.wicket.Page;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.odlabs.wiquery.core.commons.IWiQueryPlugin;
-import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
-import org.odlabs.wiquery.core.javascript.JsStatement;
 
 import se.su.dsv.scipro.HomePage;
-import se.su.dsv.scipro.SciProApplication;
-import se.su.dsv.scipro.admin.pages.AdminScheduleTemplatesPage;
 import se.su.dsv.scipro.admin.pages.AdminStartPage;
-import se.su.dsv.scipro.admin.pages.ProjectManagementPage;
-import se.su.dsv.scipro.admin.pages.SystemMaintenancePage;
-import se.su.dsv.scipro.basepages.MenuPage;
-import se.su.dsv.scipro.basepanels.mainmenu.MainMenuItem;
-import se.su.dsv.scipro.basepanels.mainmenu.MenuItem;
-import se.su.dsv.scipro.knol.resource.page.ResourcePage;
-import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
-import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePage;
-import se.su.dsv.scipro.project.pages.FinalSeminarProjectListPage;
-import se.su.dsv.scipro.project.pages.ProjectOppositionPage;
-import se.su.dsv.scipro.project.pages.ProjectPartnerPage;
 import se.su.dsv.scipro.project.pages.ProjectStartPage;
-import se.su.dsv.scipro.project.pages.ProjectChecklistPage;
-import se.su.dsv.scipro.security.auth.MetaDataActionStrategy;
-import se.su.dsv.scipro.security.auth.roles.Roles;
-import se.su.dsv.scipro.supervisor.pages.SupervisorProjectsFinalSeminarPage;
 import se.su.dsv.scipro.supervisor.pages.SupervisorStartPage;
-import se.su.dsv.scipro.wiquery.mainmenu.MainMenuJavascriptResourceReference;
 
-public class MainMenuPanel extends Panel implements IWiQueryPlugin {
+public class MainMenuPanel extends AbstractBaseMenuPanel {
 
 	private static final long serialVersionUID = 3738086567246191811L;
 	
 	public MainMenuPanel(String id, Class<? extends Page> containerClass) {
-		super(id);
-		
-		add(new MainMenuItem("homeMenuItem", HomePage.MAIN_MENU_LABEL, HomePage.class, containerClass, null));
-		
-		/*
-		 * Messages
-		 */
-		MainMenuItem messagesMenuItem = new MainMenuItem("messagesMenuItem", PrivateMessagesPage.MAIN_MENU_LABEL, PrivateMessagesPage.class, containerClass, null);
-		MetaDataActionStrategy.authorize(messagesMenuItem, Roles.SYSADMIN); // TODO: Hidden for initial deployment
-		add(messagesMenuItem);
-		
-		/*
-		 * Project/Author
-		 */
-		List<MenuItem> projectMenuSubItems = new ArrayList<MenuItem>();
-		projectMenuSubItems.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class));
-		projectMenuSubItems.add(new MenuItem(ProjectOppositionPage.MAIN_MENU_LABEL, ProjectOppositionPage.class));
-		projectMenuSubItems.add(new MenuItem(FinalSeminarProjectListPage.MAIN_MENU_LABEL, FinalSeminarProjectListPage.class));
-		MainMenuItem projectMenuItem = new MainMenuItem("projectMenuItem", ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class, containerClass, projectMenuSubItems);
-        add(projectMenuItem);
-		
-		/*
-		 * Supervisor
-		 */
-        List<MenuItem> supervisorMenuSubItems = new ArrayList<MenuItem>();
-        //supervisorMenuSubItems.add(new MenuItem("Schedule Templates", SupervisorProjectsFinalSeminarPage.class));
-        supervisorMenuSubItems.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class));
-		supervisorMenuSubItems.add(new MenuItem(SupervisorProjectsFinalSeminarPage.MAIN_MENU_LABEL, SupervisorProjectsFinalSeminarPage.class));
-        MainMenuItem supervisorMenuItem = new MainMenuItem("supervisorMenuItem", SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class, containerClass, supervisorMenuSubItems);
-        MetaDataActionStrategy.authorize(supervisorMenuItem, new Roles[]{Roles.EXTERNAL, Roles.EMPLOYEE});
-        add(supervisorMenuItem);
-		
-		/*
-		 * Resource
-		 */
-        MainMenuItem resourcesMenuItem = new MainMenuItem("resourcesMenuItem", ResourcePage.MAIN_MENU_LABEL, ResourcePage.class, containerClass, null);
-        MetaDataActionStrategy.authorize(resourcesMenuItem, Roles.SYSADMIN ); // TODO: Hidden for initial deployment
-		add(resourcesMenuItem);
-		
-		/*
-		 * Admin
-		 */
-		List<MenuItem> adminMenuSubItems = new ArrayList<MenuItem>();
-		adminMenuSubItems.add(new MenuItem(AdminScheduleTemplatesPage.MAIN_MENU_LABEL, AdminScheduleTemplatesPage.class));
-		adminMenuSubItems.add(new MenuItem(SystemMaintenancePage.MAIN_MENU_LABEL, SystemMaintenancePage.class));
-		adminMenuSubItems.add(new MenuItem(ProjectManagementPage.MAIN_MENU_LABEL, ProjectManagementPage.class));
-		adminMenuSubItems.add(new MenuItem(PeerReviewTemplatePage.MAIN_MENU_LABEL, PeerReviewTemplatePage.class));
-		MainMenuItem adminMenuItem = new MainMenuItem("adminMenuItem", AdminStartPage.MAIN_MENU_LABEL, AdminStartPage.class, containerClass, adminMenuSubItems);
-		MetaDataActionStrategy.authorize(adminMenuItem, Roles.ADMIN);
-		add(adminMenuItem);
-		
-		UserLinksPanel userLinksPanel = new UserLinksPanel("userLinksPanel");
-		add(userLinksPanel);
+		super(id,HomePage.class,containerClass);	
 	}
-	
 	@Override
-    public void contribute(WiQueryResourceManager wiQueryResourceManager) {
-        wiQueryResourceManager.addJavaScriptResource(MainMenuJavascriptResourceReference.get());
-    }
-
-    @Override
-    public JsStatement statement() {
-        return null;
-    }
-	
-	/**
-     * @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String)}
-     */
-    @SuppressWarnings("unused")
-    private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass){
-		return getMenuLink(id, targetPageClass, null, containerClass);
+	protected List<MenuItem> getItemList(){
+		List<MenuItem> list = new ArrayList<MenuItem>();
+		list.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL,ProjectStartPage.class));
+		list.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL,SupervisorStartPage.class));
+		list.add(new MenuItem(AdminStartPage.MAIN_MENU_LABEL,AdminStartPage.class));
+		return list;
 	}
-	/**
-	 * @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String, PageParameters)}
-	 */
-	private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final PageParameters pp, final Class<? extends Page> containerClass){
-		BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp);
-		result.setOutputMarkupId(true);
-		if(targetPageClass == containerClass || (targetPageClass.getSuperclass().isAssignableFrom(containerClass) && targetPageClass.getSuperclass() != MenuPage.class) ){
-			result.setMarkupId("current");
-		}
-		return result;
-	}
-
 }
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java
new file mode 100644
index 0000000000..b88315a26f
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java
@@ -0,0 +1,24 @@
+package se.su.dsv.scipro.basepanels;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.wicket.Page;
+
+import se.su.dsv.scipro.basepages.MenuPage;
+import se.su.dsv.scipro.knol.resource.page.ResourcePage;
+import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
+
+public class ServiceMenuPanel extends AbstractBaseMenuPanel {
+	private static final long serialVersionUID = 3738086567246191811L;
+	public ServiceMenuPanel(String id, Class<? extends Page> containerClass) {
+		super(id,MenuPage.class,containerClass);	
+	}
+	@Override
+	protected List<MenuItem> getItemList(){
+		List<MenuItem> list = new ArrayList<MenuItem>();
+		list.add(new MenuItem(ResourcePage.MAIN_MENU_LABEL,ResourcePage.class));
+		list.add(new MenuItem(PrivateMessagesPage.MAIN_MENU_LABEL,PrivateMessagesPage.class));
+		return list;
+	}
+}
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java
deleted file mode 100644
index 4febedf585..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package se.su.dsv.scipro.basepanels.mainmenu;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.panel.Panel;
-
-import se.su.dsv.scipro.basepages.MenuPage;
-
-/**
- * Abstract Class for Main Menu Items
- * 
- * @author patrick
- *
- */
-public abstract class AbstractMainMenuItem extends Panel {
-
-    private static final long serialVersionUID = 2849283400267381932L;
-    protected Class<? extends Page> targetPageClass;
-    protected Class<? extends Page> containerPageClass;
-    private String menuLabel;
-    protected BookmarkablePageLink<Void> menuItemLink;
-
-    public AbstractMainMenuItem(String id, String label, Class<? extends Page> targetPageClass, Class<? extends Page> containerPageClass) {
-        super(id);
-        this.menuLabel = label;
-        this.targetPageClass = targetPageClass;
-        this.containerPageClass = containerPageClass;
-    }
-    
-    public String getMenuLabel() {
-        return menuLabel;
-    }
-    
-
-    /**
-     * {@link #getMenuLink(String, PageParameters)}
-     */
-    protected BookmarkablePageLink<Void> getMenuLink(String id) {
-        return getMenuLink(id, null);
-    }
-    
-    /**
-     * Creates a bookmarkable page link for the main menu.
-     * 
-     * @param id
-     * @param pp
-     * @return
-     * @author Martin Peters
-     */
-    protected BookmarkablePageLink<Void> getMenuLink(String id, final PageParameters pp) {
-        BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp);
-        result.setOutputMarkupId(true);
-        if(targetPageClass == containerPageClass || (targetPageClass.getSuperclass().isAssignableFrom(containerPageClass) && targetPageClass.getSuperclass() != MenuPage.class) ){
-        	//TODO Should prefereably be replaced with the line below because repeating id's aren't valid html. I couldn't get the CSS to work though //mpeters
-            result.setMarkupId("current");            
-        	//result.add(new AttributeAppender("class", new Model<String>("current"), " "));
-        }
-        return result;
-    }
-    
-}
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html
deleted file mode 100644
index 53103e9295..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
-<body>
-<wicket:panel>
-<span class="menu-item">
-    <a wicket:id="mainMenuItemLink"><span wicket:id="mainMenuItemLabel"></span></a>
-    <img class="nav-arrow" wicket:id="mainMenuItemArrow" />
-</span>
-<div class="submenu rounded-bl rounded-br"><span wicket:id="mainMenuListItemSubMenu"><span wicket:id="subMenuItem"></span></span></div>
-</wicket:panel>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java
deleted file mode 100644
index b87b20e291..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package se.su.dsv.scipro.basepanels.mainmenu;
-
-import java.util.List;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.image.ContextImage;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.model.Model;
-
-/**
- * Main Menu Item, the upper level of the main menu hierarchy.
- * 
- * @author patrick
- *
- */
-public class MainMenuItem extends AbstractMainMenuItem {
-
-    private static final long serialVersionUID = 6103131868992599100L;
-    
-    @SuppressWarnings("unused")
-    private List<MenuItem> subItems;
-
-    public MainMenuItem(String id, String label, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass, final List<MenuItem> subItems) {
-        super(id, label, targetPageClass, containerClass);
-        this.subItems = subItems;
-        
-        if (subItems != null)
-            this.add(new AttributeAppender("class", true, new Model<String>("parent"), " "));
-        
-        menuItemLink = getMenuLink("mainMenuItemLink");
-        menuItemLink.add(new Label("mainMenuItemLabel", getMenuLabel()));
-        
-        add(menuItemLink);
-        
-        ContextImage mainMenuItemArrow = new ContextImage("mainMenuItemArrow", "images/site_nav_arrow2.png") {
-
-            private static final long serialVersionUID = 1793336840409311960L;
-
-            /* (non-Javadoc)
-             * @see org.apache.wicket.Component#isVisible()
-             */
-            @Override
-            public boolean isVisible() {
-                return subItems != null;
-            }
-            
-        };
-        mainMenuItemArrow.setOutputMarkupPlaceholderTag(true);
-        add(mainMenuItemArrow);
-        
-        ListView<MenuItem> subItemListView = new ListView<MenuItem>("mainMenuListItemSubMenu", subItems) {
-
-            private static final long serialVersionUID = -1444218885819118389L;
-
-            @Override
-            protected void populateItem(ListItem<MenuItem> item) {
-                MenuItem obj = item.getModelObject();
-                item.add(obj.createSubItem("subMenuItem", containerClass));
-                add(item);
-            }
-
-            /* (non-Javadoc)
-             * @see org.apache.wicket.Component#isVisible()
-             */
-            @Override
-            public boolean isVisible() {
-                return subItems != null;
-            }
-            
-            
-        };
-        subItemListView.setOutputMarkupPlaceholderTag(true);
-        add(subItemListView);
-    }
-
-}
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html
deleted file mode 100644
index 43e852090a..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
-<body>
-<wicket:panel>
-    <a href="#" wicket:id="mainMenuSubItemLink"><span wicket:id="mainMenuSubItemLabel">[Link]</span></a>
-</wicket:panel>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java
deleted file mode 100644
index 565a880183..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package se.su.dsv.scipro.basepanels.mainmenu;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
-
-/**
- * Main Menu Sub Items
- * 
- * @author patrick
- *
- */
-public class MainMenuSubItem extends AbstractMainMenuItem {
-
-    private static final long serialVersionUID = 8903203088965767242L;
-
-    public MainMenuSubItem(String id, String label, Class<? extends Page> targetPageClass,
-            Class<? extends Page> containerPageClass) {
-        super(id, label, targetPageClass, containerPageClass);
-        
-        menuItemLink = getMenuLink("mainMenuSubItemLink");
-        menuItemLink.add(new Label("mainMenuSubItemLabel", getMenuLabel()));
-        
-        add(menuItemLink);
-    }
-
-    
-}
diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java
deleted file mode 100644
index ca12d4b265..0000000000
--- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package se.su.dsv.scipro.basepanels.mainmenu;
-
-import java.util.List;
-
-import org.apache.wicket.IClusterable;
-import org.apache.wicket.Page;
-
-/**
- * Helper Class for preparing the creation of main menu items
- * @author patrick
- *
- */
-public class MenuItem implements IClusterable {
-    
-    private static final long serialVersionUID = -5341715569517881163L;
-    
-    private String menuLabel;
-    private Class<? extends Page> targetPageClass;
-    
-    public MenuItem(String menuLabel, Class<? extends Page> targetPageClass) {
-        this.menuLabel = menuLabel;
-        this.targetPageClass = targetPageClass;
-    }
-    
-    /**
-     * Creates a Main Menu Sub Item
-     * 
-     * @param id
-     * @param containerPageClass
-     * @return
-     */
-    public MainMenuSubItem createSubItem(String id, Class<? extends Page> containerPageClass) {
-        return new MainMenuSubItem(id, menuLabel, targetPageClass, containerPageClass);
-    }
-    
-    /**
-     * Creates a Main Menu Item
-     * 
-     * @param id
-     * @param containerPageClass
-     * @param subItems
-     * @return
-     */
-    public MainMenuItem createMenuItem(String id, Class<? extends Page> containerPageClass, List<MenuItem> subItems) {
-        return new MainMenuItem(id, menuLabel, targetPageClass, containerPageClass, subItems);
-    }
-}
diff --git a/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java b/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java
index 75f046c4e0..1493f65bd0 100644
--- a/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java
+++ b/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java
@@ -18,6 +18,11 @@ import org.apache.wicket.model.Model;
 
 import se.su.dsv.scipro.icons.ImageIcon;
 
+/**
+ * ABC-class for menu's of different types.
+ * Subclasses should implement their own data feed mechanics via <code>getItemList</code> and provide a menu type via <code>getMenuType</code>
+ * The returned menu-type is used to provide CSS-class mappings for the menu structure, see the MenuType enum for alternatives.
+ */
 public abstract class AbstractMenuPanel extends Panel {
 	
 	private static final long serialVersionUID = 1L;
@@ -33,6 +38,9 @@ public abstract class AbstractMenuPanel extends Panel {
 		}
 	};
 	
+	/**
+	 * Enumeration of supported menu types.
+	 */
 	public enum MenuType {
 		NONE,
 		TAB,
@@ -41,7 +49,12 @@ public abstract class AbstractMenuPanel extends Panel {
 		VERTICAL
 	}
 	
-	
+	/**
+	 * Superclass constructor, arguments 
+	 * @param id Wicket identifier for the component
+	 * @param menuContainerCommonSuperClass [Needs documentation]
+	 * @param containerClass [Needs documentation]
+	 */
 	public AbstractMenuPanel(final String id, final Class<? extends Page> menuContainerCommonSuperClass,final Class<? extends Page> containerClass) {
 		super(id);
 		
@@ -104,7 +117,10 @@ public abstract class AbstractMenuPanel extends Panel {
 	 * @return
 	 */
 	protected abstract List<MenuItem> getItemList();
-	
+	/**
+	 * Implement in subclass to return the wanted MenuType.
+	 * @return
+	 */
 	protected abstract MenuType getMenuType();
 	
 	/**
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java
index d1ad784e74..8ce4db2f10 100644
--- a/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java
+++ b/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java
@@ -58,7 +58,7 @@ public class ProjectTabMenuPanel extends AbstractMenuPanel {
 
 	@Override
 	protected MenuType getMenuType() {
-		return MenuType.TAB;
+		return MenuType.TAB_MULTIPLE_ROWS;
 	}
 	
 }
diff --git a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java b/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java
deleted file mode 100644
index e8be4f6e39..0000000000
--- a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package se.su.dsv.scipro.wiquery.mainmenu;
-
-import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
-
-public class MainMenuJavascriptResourceReference extends
-        JavascriptResourceReference {
-
-    private static final long serialVersionUID = -5062441830192125794L;
-    
-    private static MainMenuJavascriptResourceReference INSTANCE = 
-        new MainMenuJavascriptResourceReference();
-    
-    private MainMenuJavascriptResourceReference() {
-        super(MainMenuJavascriptResourceReference.class, "jquery.mainmenu.js");
-    }
-    
-    public static MainMenuJavascriptResourceReference get() {
-        return INSTANCE;
-    }
-}
diff --git a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js b/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js
deleted file mode 100644
index 7efe8da153..0000000000
--- a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js
+++ /dev/null
@@ -1,49 +0,0 @@
-$(document).ready(function() {
-		$("img.nav-arrow").click(function() {
-		var parent = $(this).parents(".parent");
-		if (parent != null)
-			showMenu(parent);
-	})
-	.mouseover(function() {
-		//$(this).attr("src", "./images/site_nav_arrow_hover.png");
-	})
-	.mouseout(function() {
-		//$(this).attr("src", "./images/site_nav_arrow.png");
-	});
-	
-	$(document).click(function(e) {
-		if ($(e.target).parents("#nav-list").length == 0) {
-			closeMenus(null);
-		}
-	});
-	
-	$(document).mouseover(function(e) {
-		if ($(e.target).parents("#main-nav").length == 0) {
-			closeMenus(null);
-		}
-	});
-	
-	addCurrentClassToIdentifier = function(identifier) {
-		var t = $("#nav-list").find(identifier).parents(".nav-list-item").get(0);
-		$(t).addClass("current");
-	};
-	
-	closeMenus = function(node) {
-		$("#nav-list .parent").children(".over").each(function() {
-			if (this != node || node == null) {
-				$(this).removeClass("over");
-			}
-		});
-	};
-
-	showMenu = function(node) {
-		var thisMenu = $(node);
-		var isActive = $(node).find("div.submenu").hasClass("over");
-		closeMenus(thisMenu);
-		if (!isActive) {
-			thisMenu.find("div.submenu").toggleClass("over");
-		}
-	};
-	
-	addCurrentClassToIdentifier("#current");
-});
\ No newline at end of file
diff --git a/src/main/webapp/css/menu.css b/src/main/webapp/css/menu.css
index 9a83ca77c0..ea13b18f47 100644
--- a/src/main/webapp/css/menu.css
+++ b/src/main/webapp/css/menu.css
@@ -1,98 +1,14 @@
-#main-nav {
-	
-}
-
-#nav-list {
-	margin-top: 4px;
-	z-index: 8001;
-}
-
-#nav-list li.nav-list-item {
-	float: left;
-	display: inline;
-	margin: 5px 8px 0 8px;
-	position: relative;
-}
-
-#nav-list li.nav-list-item .menu-item {
-	display: block;
-	height: 23px;
-	padding: 4px 2px 3px 2px;
-}
-#nav-list li.nav-list-item .menu-item a {
-	color: #fff;
-	font: 1.1em/1.5 arial, sans-serif;
-	font-weight: bold;
-	text-decoration: none;
-	padding: 0px 4px;
-}
-#nav-list li.nav-list-item .menu-item > a#current {
-	/* padding: 0 10px 7px 10px;
-	border-bottom: 5px solid #ccc; */
-}
-.menu-item img.nav-arrow {
-	vertical-align: middle;
-	width: 23px;
-	height: 23px;
-	margin-left: 4px;
-	margin-right: -3px;
-}
-
-#nav-list a#current {
-	/* Feel free to replace with something nicer */
-	/* padding-bottom: 7px; */
-	/* border-bottom: 5px solid #ccc; */
-}
-#nav-list li.current .menu-item,
-#nav-list li.nav-list-item:hover .menu-item {
-	background-color: #fff;
-	-webkit-border-top-left-radius: 4px;
-	-moz-border-radius-topleft: 4px;
-	border-top-left-radius: 4px;
-	-webkit-border-top-right-radius: 4px;
-	-moz-border-radius-topright: 4px;
-	border-top-right-radius: 4px;
-	text-decoration: none;
-}
-#nav-list li.current .menu-item a,
-#nav-list li.nav-list-item:hover .menu-item a {
-	color: #002f5f;
-}
-
-#nav-list li.nav-list-item.parent .submenu {
-	position: absolute;
-	top: 30px;
-	left: -1px;
-	width: 140px;
-	background: #fff;
-	padding: 5px;
-	display: none;
-	border-bottom: 1px solid #ccc;
-	border-left: 1px solid #ccc;
-	border-right: 1px solid #ccc;
-	z-index: 8000;
-}
-#nav-list li.nav-list-item.parent .over {
-	display: block;
-}
-#nav-list li.nav-list-item.parent .submenu {
-	font-size: 0.9em;
-	
-}
-#nav-list li.nav-list-item.parent .submenu a:link,
-#nav-list li.nav-list-item.parent .submenu a:visited,
-#nav-list li.nav-list-item.parent .submenu a:hover {
-	display: block;
-	padding: 4px;
-	text-decoration: none;
-}
-
-#main-nav #user-links {
-	margin-top: 5px;
+.user-links{
+	margin-top:5px;
 	font-size: 0.9em;
 	text-align: right;
 }
-
-#main-nav #user-links a {
+.user-links a{
 	color: #99acbf;
+}
+.main-menu{
+	float:left;
+}
+.service-menu{
+	float: right;
 }
\ No newline at end of file