Index: trunk/src/gui/gui_element.cc
===================================================================
--- trunk/src/gui/gui_element.cc	(revision 66)
+++ trunk/src/gui/gui_element.cc	(revision 69)
@@ -7,9 +7,11 @@
 #include "nv/gui/gui_element.hh"
 
+#include "nv/gui/gui_environment.hh"
+
 using namespace nv;
 using namespace nv::gui;
 
 element::element( root* aroot, const rectangle r ) 
-	: object( aroot, "", 0 ), m_relative( r ), m_absolute( r ), m_enabled( true ), m_visible( true )
+	: object( aroot, "", 0 ), m_class(""), m_relative( r ), m_absolute( r ), m_enabled( true ), m_visible( true ), m_dirty( true )
 {
 
@@ -31,4 +33,5 @@
 	if ( is_visible() )
 	{
+		((environment*)m_root)->draw( this );
 		for ( object* i : *this )
 		{
@@ -36,4 +39,9 @@
 		}
 	}
+}
+
+bool element::on_event( const io_event& event )
+{
+	return m_parent ? ((element*)m_parent)->on_event( event ) : false;
 }
 
@@ -63,4 +71,5 @@
 void element::set_relative( const rectangle& r )
 {
+	m_dirty    = true;
 	m_relative = r;
 	recalculate_absolute();
Index: trunk/src/gui/gui_environment.cc
===================================================================
--- trunk/src/gui/gui_environment.cc	(revision 69)
+++ trunk/src/gui/gui_environment.cc	(revision 69)
@@ -0,0 +1,15 @@
+// Copyright (C) 2012-2013 ChaosForge / Kornel Kisielewicz
+// http://chaosforge.org/
+//
+// This file is part of NV Libraries.
+// For conditions of distribution and use, see copyright notice in nv.hh
+
+#include "nv/gui/gui_environment.hh"
+
+using namespace nv;
+using namespace nv::gui;
+
+void environment::draw( element* e )
+{
+	
+}
