//---------------------------------------------------------------------

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(int timestep,
                                  double[,] establishProbabilities)
        {
            this.timestep      = timestep;
            this.nextTimeToRun = timestep;

            SiteVars.Initialize();
            SiteVars.Reproduction.ActiveSiteValues = new ReproductionBySeeding(new UniversalSeeding());
            Reproduction.SetEstablishProbabilities(establishProbabilities);
        }
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(int timestep,
                                  double[,] establishProbabilities)
        {
            this.timestep      = timestep;
            this.nextTimeToRun = timestep;

            SiteVars.Initialize();
            defaultReproduction = new Seeding(WardSeedDispersal.Algorithm);
            SiteVars.Reproduction.ActiveSiteValues = defaultReproduction;
            Reproduction.SetEstablishProbabilities(establishProbabilities);
        }