//Assuming Master is ready
        //Assuming Slaves are in a heuristic loadable state
        public void ResetHeuristics()
        {
            if (ResettingHeuristics != null)
            {
                ResettingHeuristics(this, null);
            }

            HeuristicManager.StopMonitoring();
            HeuristicManager.Clear();

            if (HeuristicMasterMedia != null)
            {
                HeuristicManager.AddSmoothStreamingMediaElement(HeuristicMasterMedia, HeuristicSettings.PrimaryMinBitRate,
                                                                HeuristicSettings.PrimaryMinFrameRate);
                // TODO:  determin min values depending on size of master

                foreach (SlaveMediaElement slave in SubMediaElements)
                {
                    if (slave.MediaElement != HeuristicMasterMedia)
                    {
                        // reset current heuristic enabled flag
                        slave.IsPhysicalSyncEnabled = false;

                        //if (slave.IsLogicalSyncEnabled) // does it logically needed to be playing, if so, add it to HM
                        //{
                        if (slave.MediaElement != null)
                        {
                            HeuristicManager.AddSmoothStreamingMediaElement(slave.MediaElement,
                                                                            HeuristicSettings.SecondaryMinBitRate,
                                                                            HeuristicSettings.SecondaryMinFrameRate);
                        }
                    }
                }

                HeuristicManager.StartMonitoring();
            }
        }