diff --git a/app/mourne_application.cpp b/app/mourne_application.cpp
index a4d85a0..087b624 100644
--- a/app/mourne_application.cpp
+++ b/app/mourne_application.cpp
@@ -20,6 +20,25 @@
 void MourneApplication::index(Object *instance, Request *request) {
 	add_menu(request, MENUENTRY_NEWS);
 
+	/*
+	<?php if (isset($hero)): ?>
+	<link rel="stylesheet" type="text/css" href="<?=base_url('css/hero.css'); ?>">
+	<?php endif; ?>
+
+	<?php if ($userlevel > 2): ?>
+		<link rel="stylesheet" type="text/css" href="<?=base_url('css/admin.css'); ?>">
+	<?php endif; ?>
+
+	<?php if ($page == 'mail'): ?>
+		<link rel="stylesheet" type="text/css" href="<?=base_url('css/mail.css'); ?>">
+	<?php endif; ?>
+
+	<?php if ($resources): ?>
+		<script src="<?=base_url('js/resource.js'); ?>"></script>
+	<?php endif; ?>
+	*/
+
+
 	//dynamic_cast<ListPage *>(instance)->index(request);
 	request->body += "test";
 	request->compile_and_send_body();
@@ -36,7 +55,144 @@ void MourneApplication::session_middleware_func(Object *instance, Request *reque
 
 void MourneApplication::add_menu(Request *request, const MenuEntries index) {
 	request->head += menu_head;
-	request->body += menu_strings[index];
+
+	HTMLBuilder b;
+
+	HTMLTag *t;
+
+/*
+	<?php if ($weather): ?>
+	<div class="menu_base <?=$weather['css']; ?>">
+	<?php else: ?>
+	<div class="menu_base">
+	<?php endif; ?>
+*/
+
+	b.div()->cls("menu_base");
+	{
+		b.div()->cls("left");
+		{
+			b.div()->cls("menu_news");
+			{
+				b.a()->href("/news/index");
+				b.w("News");
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_mail");
+			{
+				b.a()->href("/mail/inbox");
+				b.w("Mails");
+				//if ($newmail) echo '!';
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_hero");
+			{
+				b.a()->href("/hero/selected");
+				b.w("Hero");
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_village");
+			{
+				b.a()->href("/village/selected");
+				b.w("Village"); //villagename
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_sel_village");
+			{
+				b.a()->href("/village/select");
+				b.w("v");
+				b.ca();
+			}
+			b.cdiv();
+
+			/*
+			<?php if ($alliancename): ?>
+			<div class="menu_alliance">
+			<a href="<?=site_url($menu_alliance); ?>">[<?=$alliancename; ?>]</a>
+			</div>
+			<?php endif; ?>
+			*/
+
+			/*
+			<?php if ($weather): ?>
+			<div class="weather">
+			<abbr title="<?=$weather['description']; ?>"><?=$weather['name']; ?></abbr>
+			</div>
+			<?php endif; ?>
+			*/
+		}
+		b.cdiv();
+
+		b.div()->cls("right");
+		{
+			/*
+			<?php if ($userlevel > 4): ?>
+			<div class="menu_gm">
+			<a href="<?=site_url($link_gm); ?>">GM</a>
+			</div>
+			<?php endif; ?>
+			*/
+
+			/*
+			<?php if ($userlevel > 5): //dev+?>
+			<div class="menu_admin">
+			<a href="<?=site_url($link_admin); ?>">Admin</a>
+			</div>
+			<?php endif; ?>
+			*/
+
+			b.div()->cls("menu_alliance_menu");
+			{
+				b.a()->href("/alliance/alliance_menu");
+				b.w("Alliances");
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_forum");
+			{
+				b.a()->href("/forum/index");
+				b.w("Forum");
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_settings");
+			{
+				b.a()->href("/user/settings");
+				b.w("Settings");
+				b.ca();
+			}
+			b.cdiv();
+
+			b.div()->cls("menu_logout");
+			{
+				b.a()->href("/user/logout");
+				b.w("Logout");
+				b.ca();
+			}
+			b.cdiv();
+		}
+		b.cdiv();
+
+		b.div()->cls("nofloat");
+		b.cdiv();
+	}
+	
+	b.cdiv();
+	b.div()->cls("main");
+	b.write_tag();
+
+	request->body += b.result;
+
 	request->footer = footer;
 }
 
@@ -73,97 +229,17 @@ void MourneApplication::migrate() {
 }
 
 void MourneApplication::compile_menu() {
-
-	for (int i = 0; i < MENUENTRY_MAX; ++i) {
-		HTMLBuilder b;
-
-		HTMLTag *t;
-
-		b.div()->cls("content");
-		{
-
-			b.ul()->cls("menu");
-			{
-				b.li();
-				t = b.a()->href("/");
-
-				if (i == MENUENTRY_NEWS) {
-					t->cls("menu_active");
-				}
-
-				b.w("TSITE");
-				b.ca();
-				b.cli();
-
-				b.li();
-				t = b.a()->href("/village/selected");
-
-				if (i == MENUENTRY_VILLAGE) {
-					t->cls("menu_active");
-				}
-
-				b.w("Projects");
-				b.ca();
-				b.cli();
-
-				b.li();
-				{
-					t = b.a()->href("/village/select");
-
-					if (i == MENUENTRY_SELECT_VILLAGE) {
-						t->cls("menu_active");
-					}
-
-					b.w("Classes");
-					b.ca();
-				}
-				b.cli();
-
-				b.li();
-				{
-					t = b.a()->href("/user/login");
-					b.w("Login");
-					b.ca();
-				}
-				b.cli();
-
-				b.li();
-				{
-					t = b.a()->href("/user/register");
-					b.w("Register");
-					b.ca();
-				}
-				b.cli();
-
-				b.li();
-				{
-					t = b.a()->href("/user/settings");
-					b.w("Profile");
-					b.ca();
-				}
-				b.cli();
-
-				b.li();
-				{
-					t = b.a()->href("/user/logout");
-					b.w("Logout");
-					b.ca();
-				}
-				b.cli();
-			}
-			b.cul();
-		}
-		b.div()->cls("inner_content");
-		b.write_tag();
-
-		menu_strings.push_back(b.result);
-	}
-
 	HTMLBuilder bh;
 
 	bh.meta()->charset_utf_8();
+	bh.meta()->name("description")->content("RPG browsergame");
+	bh.meta()->name("keywords")->content("RPG,browsergame,Mourne,game,play");
+	bh.title();
+	bh.w("Mourne");
+	bh.ctitle();
 
-	bh.link()->rel_stylesheet()->href("/css/main.css");
+	bh.link()->rel_stylesheet()->href("/css/base.css");
+	bh.link()->rel_stylesheet()->href("/css/menu.css");
 	bh.write_tag();
 
 	menu_head = bh.result;
@@ -172,15 +248,8 @@ void MourneApplication::compile_menu() {
 
 	bf.cdiv();
 	bf.footer();
-	bf.w("Powered by ");
-	bf.a()->href("https://github.com/Relintai/rcpp_cms");
-	bf.w("rcpp cms");
-	bf.ca();
-	bf.w(".");
 	bf.cfooter();
 
-	bf.cdiv();
-
 	footer = bf.result;
 }
 
@@ -193,6 +262,5 @@ MourneApplication::MourneApplication() :
 MourneApplication::~MourneApplication() {
 }
 
-std::vector<std::string> MourneApplication::menu_strings;
 std::string MourneApplication::menu_head = "";
 std::string MourneApplication::footer = "";
diff --git a/app/mourne_application.h b/app/mourne_application.h
index c473921..eb4692a 100644
--- a/app/mourne_application.h
+++ b/app/mourne_application.h
@@ -48,7 +48,6 @@ public:
 	MourneApplication();
 	~MourneApplication();
 
-	static std::vector<std::string> menu_strings;
 	static std::string menu_head;
 	static std::string footer;
 };