// condition default meta data matrix for Objective x Grade x Standard
        protected virtual List<StudentMetricLearningStandardMetaDataModel> GetObjectives()
        {

            // create new list
            suppliedObjectives = new List<StudentMetricLearningStandardMetaDataModel>();

            // add objectives
            for (int i = 0; i < suppliedObjectiveCount; i++)
            {
                var objective = new StudentMetricLearningStandardMetaDataModel(suppliedMetricVariantId)
                {
                    LearningObjective = suppliedObjectivePrefix + (i + 1)
                };
                // add grades
                for (int j = suppliedGradeStart - 1; j < suppliedGradeStart + suppliedGradeCount - 1; j++)
                {
                    int gradeSort = j + 1;
                    var grade = new StudentMetricLearningStandardMetaDataModel.GradeModel()
                    {
                        GradeLevel = Utilities.GetGradeLevelFromSort(gradeSort),
                        GradeSort = gradeSort,
                    };
                    // add standards
                    for (int k = 0; k < suppliedStandardCount; k++)
                    {
                        var standard = new StudentMetricLearningStandardMetaDataModel.StandardModel()
                        {
                            LearningStandard = (i + 1) + "." + gradeSort + "." + (k + 1)
                        };
                        grade.Standards.Add(standard);
                    }
                    objective.Grades.Add(grade);
                }
                suppliedObjectives.Add(objective);
            }

            // return list
            return suppliedObjectives;

        }
        // configure objective meta data for more than grade window
        protected override List<StudentMetricLearningStandardMetaDataModel> GetObjectives()
        {

            // create new list
            suppliedObjectives = new List<StudentMetricLearningStandardMetaDataModel>();

            // add 5 objectives
            for (int i = 0; i < 5; i++)
            {
                var objective = new StudentMetricLearningStandardMetaDataModel(suppliedMetricVariantId)
                {
                    LearningObjective = suppliedObjectivePrefix + (i + 1)
                };
                // add 5 grades to middle 3 objectives
                if (i >= 1 && i <= 3)
                {
                    for (int j = 3; j < 8; j++)
                    {
                        var grade = new StudentMetricLearningStandardMetaDataModel.GradeModel()
                        {
                            GradeLevel = Utilities.GetGradeLevelFromSort(j + 1),
                            GradeSort = j + 1
                        };
                        // add standards
                        for (int k = 0; k < suppliedStandardCount; k++)
                        {
                            var standard = new StudentMetricLearningStandardMetaDataModel.StandardModel()
                            {
                                LearningStandard = (i + 1) + "." + (j + 1) + "." + (k + 1)
                            };
                            grade.Standards.Add(standard);
                        }
                        objective.Grades.Add(grade);
                    }
                }
                suppliedObjectives.Add(objective);
            }

            // first and last objectives will only have grade 4 | 8 which should not come through
            suppliedObjectives[0].Grades.Add(new StudentMetricLearningStandardMetaDataModel.GradeModel() { GradeLevel = Utilities.GetGradeLevelFromSort(4), GradeSort = 4 });
            suppliedObjectives[4].Grades.Add(new StudentMetricLearningStandardMetaDataModel.GradeModel() { GradeLevel = Utilities.GetGradeLevelFromSort(8), GradeSort = 8 });

            // return list
            return suppliedObjectives;

        }