//implemented methods
        public override void InputFormFields()
        {
            WebElementWrapper questionContentElement = SelectQuestionContent();

            //QuestionAnswerData
            if (_questionAnswerDataObject != null)
            {
                Utilities.DoFileUpload(Editor, _autoItDataObject, _questionAnswerDataObject.FileUploadTree, _questionAnswerDataObject.QuestionContent);
                Editor.ContentData = _questionAnswerDataObject.QuestionContent;
            }
            else //ItemTypeData
            {
                Utilities.DoFileUpload(Editor, _autoItDataObject, Data.FileUploadTree, Data.QuestionContent);
                Editor.ContentData = Data.QuestionContent;
            }

            Editor.InputAndSubmitForm(questionContentElement);

            int index = 0;

            foreach (var questionStem in QuestionStemList)
            {
                questionStem.ContentAdd.Click();

                //QuestionAnswerData
                if (_questionAnswerDataObject != null)
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, _questionAnswerDataObject.FileUploadTree, _questionAnswerDataObject.QuestionList[index]);
                    Editor.ContentData = _questionAnswerDataObject.QuestionList[index];
                }
                else //ItemTypeData
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, Data.FileUploadTree, Data.QuestionStemList[index]);
                    Editor.ContentData = Data.QuestionStemList[index];
                }

                index++;
                Editor.InputAndSubmitForm(questionStem.ContentAdd);
            }

            index = 0;
            foreach (var answerChoice in AnswerChoiceList)
            {
                answerChoice.ContentAdd.Click();

                //QuestionAnswerData
                if (_questionAnswerDataObject != null)
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, _questionAnswerDataObject.FileUploadTree, _questionAnswerDataObject.AnswerList[index]);
                    Editor.ContentData = _questionAnswerDataObject.AnswerList[index];
                }
                else //ItemTypeData
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, Data.FileUploadTree, Data.AnswerChoiceList[index]);
                    Editor.ContentData = Data.AnswerChoiceList[index];
                }

                index++;
                Editor.InputAndSubmitForm(answerChoice.ContentAdd);
            }

            index = 0;
            foreach (var matchingPair in MatchingPairList)
            {
                matchingPair.SelectQuestionStem(matchingPair.Label);
                matchingPair.SelectAnswerChoice(AnswerChoiceList[index].Label);
                matchingPair.SelectAddTeacherExplanation();

                //QuestionAnswerData
                if (_questionAnswerDataObject != null)
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, _questionAnswerDataObject.FileUploadTree, _questionAnswerDataObject.TeacherExplanationList[0]);
                    Editor.ContentData = _questionAnswerDataObject.TeacherExplanationList[0];
                }
                else //ItemTypeData
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, Data.FileUploadTree, Data.TeacherExplanation);
                    Editor.ContentData = Data.TeacherExplanation;
                }

                Editor.InputAndSubmitForm(matchingPair.TeacherExplanation.Add);

                matchingPair.SelectEditStudentExplanation();

                //QuestionAnswerData
                if (_questionAnswerDataObject != null)
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, _questionAnswerDataObject.FileUploadTree, _questionAnswerDataObject.StudentExplanationList[0]);
                    Editor.ContentData = _questionAnswerDataObject.StudentExplanationList[0];
                }
                else //ItemTypeData
                {
                    Utilities.DoFileUpload(Editor, _autoItDataObject, Data.FileUploadTree, Data.StudentExplanation);
                    Editor.ContentData = Data.StudentExplanation;
                }

                Editor.InputAndSubmitForm(matchingPair.StudentExplanation.Edit);

                //QuestionAnswerData
                if (_questionAnswerDataObject != null)
                {
                    //get the question
                    string question = _questionAnswerDataObject.QuestionList[index];
                    Report.Write("question: " + question);
                    try
                    {
                        string points = _questionAnswerDataObject.PointValuePair[question];
                        Report.Write("question: " + question + "; points: " + points);
                        matchingPair.SelectIsCorrectResponse();
                        matchingPair.EditPointsPossible(points);
                    }
                    catch (Exception e)
                    {
                        //do nothing
                    }
                }
                else //ItemTypeData
                {
                    MatchingPairList.Last().SelectIsCorrectResponse();
                    MatchingPairList.Last().EditPointsPossible("" + Data.PointsValue);
                }
                index++;
            }
            //this is only applicable on https://qa-153mt.sndev.net
            //SelectEnableManipulativesNo();
            //TODO: work on enable manipulatives for version 15.4
        }
 /// <summary>
 /// add matching pair
 /// </summary>
 public void AddMatchingPair()
 {
     AddMatchingPairLink.Click();
     MatchingPairList.Clear();
     SetUniqueControlIdentifiers();
 }