Major refactoring, use GuiBuilder for rendering