/// <summary>
        /// Considers a single MainBlock at a time.
        /// </summary>
        private void ProcessMainBlock(IMainBlock mainBlock)
        {
            int dimensionSetIndex = 0;

            while (dimensionSetIndex < _solutionTracker.BlockDimensionSets[mainBlock.Capacity].Count)
            {
                PossibleBlock = AdditionalMethods.CreatPossibleBlockFromDimensionSetIndex(mainBlock, _solutionTracker.BlockDimensionSets, dimensionSetIndex);
                ProcessDimensionSet();
                dimensionSetIndex++;
            }
        }