local outer = Component(FixedSizing(640, 480)) -- The root should be a fixed size.
    outer:setLayout(VerticalLayout({ gap = 0, align = "center" })) -- Center it vertically!
    local inner = Component(FillSizing(), FitSizing()) -- Stretch horizontally, fit to content vertically
        inner:setLayout(HorizontalLayout({ gap = 0, align = "center" })) -- Center it horizontally!
        -- anything we add to inner will be centered horizontally
        local box = BoxComponent(FitSizing())
            local menu = BasicMenuComponent(FitSizing())
                menu:setLayout(VerticalLayout({ gap = 0, align = "start" }))
                menu:addChild(SoulMenuItemComponent(Text("Option 1"), function() print("Option 1 was selected!") end))
                menu:addChild(SoulMenuItemComponent(Text("Option 2"), function() print("Option 2 was selected!") end))
                menu:addChild(SoulMenuItemComponent(Text("Option 3"), function() print("Option 3 was selected!") end))
                menu:addChild(SoulMenuItemComponent(Text("Option 4"), function() print("Option 4 was selected!") end))
                menu:addChild(SoulMenuItemComponent(Text("Option 5"), function() print("Option 5 was selected!") end))

                menu:setFocused()
                menu:setCancelCallback(function()
                    menu:close()
                    Game.world:closeMenu()
                end)
                
                menu:setFocused()
        inner:addChild(menu)
        inner:addChild(box)
    outer:addChild(inner) 

    
return outer-- Add the inner component to the outer component!