private void refreshStatusText()
        {
            if (!isCurrentPageValid())
            {
                missingElementsLabel.Text = "The following properties need to be filled out to continue: ";
                string missingElements = "";

                switch (WM.CurrentState)
                {
                case WizardState.race:
                    missingElements = string.Join(", ", new string[] {
                        raceComponent.getInvalidElements(),
                        alignmentComponent.getInvalidElements()
                    }.Where(s => !string.IsNullOrEmpty(s)));
                    break;

                case WizardState.appearance:
                    missingElements = string.Join(", ", new string[] {
                        ageComponent.getInvalidElements(),
                        bodyComponent.getInvalidElements(),
                        appearanceComponent.getInvalidElements()
                    }.Where(s => !string.IsNullOrEmpty(s)));
                    break;

                case WizardState.classBackground:
                    missingElements = string.Join(", ", new string[] {
                        classComponent.getInvalidElements(),
                        backgroundComponent.getInvalidElements()
                    }.Where(s => !string.IsNullOrEmpty(s)));
                    break;

                case WizardState.stats:
                    missingElements = abilityComponent.getInvalidElements();
                    break;

                case WizardState.languages:
                    missingElements = languageComponent.getInvalidElements();
                    break;

                case WizardState.skillEquipment:
                    missingElements = string.Join(", ", new string[] {
                        skillComponent.getInvalidElements(),
                        equipmentComponent.getInvalidElements()
                    }.Where(s => !string.IsNullOrEmpty(s)));
                    break;

                case WizardState.spells:
                    missingElements = spellComponent.getInvalidElements();
                    break;

                case WizardState.extraRaceChoices:
                    missingElements = extraRaceChoiceComponent.getInvalidElements();
                    break;

                case WizardState.extraClassChoices:
                    missingElements = extraClassChoiceComponent.getInvalidElements();
                    break;

                case WizardState.extraSubclassChoices:
                    missingElements = extraSubclassChoiceComponent.getInvalidElements();
                    break;

                case WizardState.story:
                    missingElements = string.Join(", ", new string[] {
                        nameComponent.getInvalidElements(),
                        storyComponent.getInvalidElements()
                    }.Where(s => !string.IsNullOrEmpty(s)));
                    break;

                case WizardState.export:
                    missingElements = exportComponent.getInvalidElements();
                    break;

                default:     //WizardState.intro
                    missingElements = introComponent.getInvalidElements();
                    break;
                }

                missingElementsLabel.Text += missingElements;
            }
            else
            {
                missingElementsLabel.Text = "Page is filled out correctly.";
            }
        }