diff --git a/modules/client/client.lua b/modules/client/client.lua
index 7434d5b1..ca1c151b 100644
--- a/modules/client/client.lua
+++ b/modules/client/client.lua
@@ -8,8 +8,14 @@ function Client.init()
   if g_window.getPlatformType() == "X11-EGL" then
     g_window.setFullscreen(true)
   else
-    g_window.move({ x=220, y=220 })
-    g_window.resize({ width=800, height=480 })
+    local size = { width = 1024,
+                   height = 768 }
+    g_window.resize(size)
+
+    local displaySize = g_window.getDisplaySize()
+    local pos = { x = (displaySize.width - size.width)/2,
+                  y = (displaySize.height - size.height)/2 }
+    g_window.move(pos)
   end
 
   g_window.setTitle('OTClient')
diff --git a/modules/core_styles/styles/popupmenus.otui b/modules/core_styles/styles/popupmenus.otui
index 5d1f991c..a8006386 100644
--- a/modules/core_styles/styles/popupmenus.otui
+++ b/modules/core_styles/styles/popupmenus.otui
@@ -35,8 +35,6 @@ PopupMenuSeparator < UIWidget
 
 PopupMenu < UIPopupMenu
   width: 100
-  button-style: PopupMenuButton
-  separator-style: PopupMenuSeparator
   border-image:
     source: /core_styles/images/menubox.png
     border: 3
\ No newline at end of file
diff --git a/modules/core_widgets/uipopupmenu.lua b/modules/core_widgets/uipopupmenu.lua
index e6bb25bc..1c30678f 100644
--- a/modules/core_widgets/uipopupmenu.lua
+++ b/modules/core_widgets/uipopupmenu.lua
@@ -19,7 +19,7 @@ function UIPopupMenu.display(menu, pos)
 end
 
 function UIPopupMenu.addOption(menu, optionName, optionCallback)
-  local optionWidget = createWidget(menu.buttonStyle, menu)
+  local optionWidget = createWidget(menu:getStyleName() .. 'Button', menu)
   local lastOptionWidget = menu:getLastChild()
   optionWidget.onClick = function()
     optionCallback()
@@ -29,7 +29,7 @@ function UIPopupMenu.addOption(menu, optionName, optionCallback)
 end
 
 function UIPopupMenu.addSeparator(menu)
-  local separatorWidget = createWidget(menu.separatorStyle, separator)
+  local separatorWidget = createWidget(menu:getStyleName() .. 'Separator', separator)
 end
 
 -- hooked events
@@ -49,12 +49,3 @@ function UIPopupMenu.onKeyPress(menu, keyCode, keyText, keyboardModifiers)
   end
   return false
 end
-
-function UIPopupMenu.onStyleApply(menu, style)
-  if style['button-style'] then
-    menu.buttonStyle = style['button-style']
-  end
-  if style['separator-style'] then
-    menu.separatorStyle = style['separator-style']
-  end
-end
\ No newline at end of file
diff --git a/src/framework/luafunctions.cpp b/src/framework/luafunctions.cpp
index 53909f22..b3e869b6 100644
--- a/src/framework/luafunctions.cpp
+++ b/src/framework/luafunctions.cpp
@@ -120,6 +120,7 @@ void Application::registerLuaFunctions()
     g_lua.bindClassMemberFunction<UIWidget>("getMarginLeft", &UIWidget::getMarginLeft);
     g_lua.bindClassMemberFunction<UIWidget>("getLastFocusReason", &UIWidget::getLastFocusReason);
     g_lua.bindClassMemberFunction<UIWidget>("getStyle", &UIWidget::getStyle);
+    g_lua.bindClassMemberFunction<UIWidget>("getStyleName", &UIWidget::getStyleName);
     g_lua.bindClassMemberFunction<UIWidget>("getChildren", &UIWidget::getChildren);
     g_lua.bindClassMemberFunction<UIWidget>("getFocusedChild", &UIWidget::getFocusedChild);
     g_lua.bindClassMemberFunction<UIWidget>("getChildAfter", &UIWidget::getChildAfter);
@@ -233,6 +234,7 @@ void Application::registerLuaFunctions()
     g_lua.bindClassStaticFunction("g_window", "setIcon", std::bind(&PlatformWindow::setIcon, &g_window, _1));
     g_lua.bindClassStaticFunction("g_window", "getMousePos", std::bind(&PlatformWindow::getMousePos, &g_window));
     g_lua.bindClassStaticFunction("g_window", "getSize", std::bind(&PlatformWindow::getSize, &g_window));
+    g_lua.bindClassStaticFunction("g_window", "getDisplaySize", std::bind(&PlatformWindow::getDisplaySize, &g_window));
     g_lua.bindClassStaticFunction("g_window", "getPlatformType", std::bind(&PlatformWindow::getPlatformType, &g_window));
 
     // Logger
diff --git a/src/framework/ui/uimanager.cpp b/src/framework/ui/uimanager.cpp
index b5f6dc35..406eccc0 100644
--- a/src/framework/ui/uimanager.cpp
+++ b/src/framework/ui/uimanager.cpp
@@ -34,7 +34,6 @@ void UIManager::init()
     // creates root widget
     m_rootWidget = UIWidget::create<UIWidget>();
     m_rootWidget->setId("root");
-    m_rootWidget->resize(g_window.getSize());
     m_mouseReceiver = m_rootWidget;
     m_keyboardReceiver = m_rootWidget;
 }
@@ -134,8 +133,9 @@ OTMLNodePtr UIManager::getStyle(const std::string& styleName)
 
     // styles starting with UI are automatically defined
     if(boost::starts_with(styleName, "UI")) {
-        OTMLNodePtr node = OTMLNode::create();
+        OTMLNodePtr node = OTMLNode::create(styleName);
         node->writeAt("__class", styleName);
+        m_styles[styleName] = node;
         return node;
     }
 
diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp
index f14397dd..883d9705 100644
--- a/src/framework/ui/uiwidget.cpp
+++ b/src/framework/ui/uiwidget.cpp
@@ -155,6 +155,7 @@ void UIWidget::setStyle(const std::string& styleName)
     }
     applyStyle(styleNode);
     m_style = styleNode;
+    assert(getStyleName() != "");
     updateStyle();
 }
 
diff --git a/src/framework/ui/uiwidget.h b/src/framework/ui/uiwidget.h
index 8e1b1df0..42bbc5bc 100644
--- a/src/framework/ui/uiwidget.h
+++ b/src/framework/ui/uiwidget.h
@@ -26,6 +26,7 @@
 #include "declarations.h"
 #include <framework/luascript/luaobject.h>
 #include <framework/graphics/declarations.h>
+#include <framework/otml/otmlnode.h>
 
 class UIWidget : public LuaObject
 {
@@ -128,6 +129,7 @@ public:
     int getMarginLeft() { return m_marginLeft; }
     Fw::FocusReason getLastFocusReason() { return m_lastFocusReason; }
     OTMLNodePtr getStyle() { return m_style; }
+    std::string getStyleName() { return m_style->tag(); }
 
     UIWidgetList getChildren() { return m_children; }
     UIWidgetPtr getFocusedChild() { return m_focusedChild; }