private void refreshContentPanel()
        {
            //fill in header and description
            headerLabel.Text      = WM.getCurrentPageHeader();
            descriptionLabel.Text = WM.getCurrentPageDescription();

            //fill content
            contentFlowPanel.Controls.Clear();
            switch (WM.CurrentState)
            {
            case WizardState.race:
                contentFlowPanel.Controls.Add(raceComponent);
                raceComponent.populateForm();

                contentFlowPanel.Controls.Add(alignmentComponent);
                alignmentComponent.populateForm();
                break;

            case WizardState.appearance:
                contentFlowPanel.Controls.Add(ageComponent);
                ageComponent.populateForm();

                contentFlowPanel.Controls.Add(bodyComponent);
                bodyComponent.populateForm();

                contentFlowPanel.Controls.Add(appearanceComponent);
                appearanceComponent.populateForm();
                break;

            case WizardState.classBackground:
                contentFlowPanel.Controls.Add(classComponent);
                classComponent.populateForm();

                contentFlowPanel.Controls.Add(backgroundComponent);
                backgroundComponent.populateForm();
                break;

            case WizardState.stats:
                contentFlowPanel.Controls.Add(abilityComponent);
                abilityComponent.populateForm();
                break;

            case WizardState.languages:
                contentFlowPanel.Controls.Add(languageComponent);
                languageComponent.populateForm();
                break;

            case WizardState.skillEquipment:
                contentFlowPanel.Controls.Add(skillComponent);
                skillComponent.populateForm();

                contentFlowPanel.Controls.Add(equipmentComponent);
                equipmentComponent.populateForm();
                break;

            case WizardState.spells:
                contentFlowPanel.Controls.Add(spellComponent);
                spellComponent.populateForm();
                break;

            case WizardState.extraRaceChoices:
                contentFlowPanel.Controls.Add(extraRaceChoiceComponent);
                extraRaceChoiceComponent.populateForm();
                break;

            case WizardState.extraClassChoices:
                contentFlowPanel.Controls.Add(extraClassChoiceComponent);
                extraClassChoiceComponent.populateForm();
                break;

            case WizardState.extraSubclassChoices:
                contentFlowPanel.Controls.Add(extraSubclassChoiceComponent);
                extraSubclassChoiceComponent.populateForm();
                break;

            case WizardState.story:
                contentFlowPanel.Controls.Add(nameComponent);
                nameComponent.populateForm();
                contentFlowPanel.Controls.Add(storyComponent);
                storyComponent.populateForm();
                break;

            case WizardState.export:
                contentFlowPanel.Controls.Add(exportComponent);
                exportComponent.populateForm();
                break;

            default:     //WizardState.intro
                contentFlowPanel.Controls.Add(introComponent);
                introComponent.populateForm();
                break;
            }
        }