public override void Execute()
        {
            bool   isBrowseMode;
            string screenName;
            Guid   currentWorkflowState;

            if (!GetRootState(out screenName, out isBrowseMode, out currentWorkflowState))
            {
                return;
            }

            string oldScreen = null;

            if (isBrowseMode)
            {
                NavigationData.LoadScreenHierarchy(screenName + "_OLD", out oldScreen);
            }

            NavigationData.SaveScreenHierarchy(screenName,
                                               isBrowseMode ? oldScreen : Consts.USE_BROWSE_MODE,
                                               !isBrowseMode /* backup when switching to browse mode */);

            IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>();

            workflowManager.StartBatchUpdate();
            workflowManager.NavigatePopToState(currentWorkflowState, true);
            workflowManager.NavigatePush(currentWorkflowState);
            workflowManager.EndBatchUpdate();
        }