public function execute(Observer $observer)
    {
        /** @var Layout $layout */
        if (!$layout = $observer->getData('layout')) {
            return;
        }

        if (!$update = $layout->getUpdate()) {
            return;
        }

        # Set footer - Applied to all pages
        $update->addHandle($this->_getFooterHandleName());

        # Set header - Applied to all pages
        $update->addHandle($this->_getHeaderHandleName());

        # Set footer - Applied product list pages only
        if ($this->_shouldApplyProductListItemHandle()) {
            $update->addHandle($this->_getProductListItemHandleName());
        }

        # Temporary until we have a banners module
        # Adds the banner handle only when at the home page
        if ($this->_shouldApplyBannerHandle()) {
            $update->addHandle($this->_getBannerHandleName());
        }

        # In all pages, add the theme customization AFTER all of the above
        $update->addHandle(self::THEME_CUSOMIZATION_HANDLE_NAME);
    }