/// <summary>
 /// 
 /// </summary>
 /// <param name="identifier"></param>
 /// <param name="state"></param>
 /// <param name="metricsEvaluator"></param>
 /// <param name="endCriteriaEvaluator"></param>
 /// <param name="getCallableGenes">Gets the IGEPGenes that can be called by the given IGEPGene.</param>
 public GEPEnvironment(IEnvironmentIdentifier identifier, IEnvironmentState state, 
     IMetricsEvaluator metricsEvaluator, IEndCriteriaEvaluator endCriteriaEvaluator,
     IComparer<IOrganism> organismValueComparer,
     ICallableGenesProvider callableGenesProvider)
     : base(identifier, state, metricsEvaluator, endCriteriaEvaluator, callableGenesProvider: callableGenesProvider, organismValueComparer: organismValueComparer)
 {
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="identifier"></param>
        /// <param name="state"></param>
        /// <param name="metricsEvaluator"></param>
        /// <param name="endCriteriaEvaluator"></param>
        /// <param name="getCallableGenes">Gets the IGEPGenes that can be called by the given IGEPGene.</param>
        protected GEPEnvironmentBase(IEnvironmentIdentifier identifier, IEnvironmentState state,
            IMetricsEvaluator metricsEvaluator, IEndCriteriaEvaluator endCriteriaEvaluator,
            IComparer<IOrganism> organismValueComparer,
            ICallableGenesProvider callableGenesProvider) :
            base(identifier, state, metricsEvaluator, endCriteriaEvaluator, organismValueComparer)
        {
            this.AllRegistryIdentifiers = GetAllRegistryIdentifiers();

            this.AllWriteableRegistryIdentifiers = GetAllWriteableRegistryIdentifiers();

            this.GlobalRegistryIdentifier = new RegistryIdentifier("Global");
            this.InputRegistryIdentifier = new RegistryIdentifier("Input");
            this.LocalGlobalRegistryIdentifier = new RegistryIdentifier("LocalGlobal");
            this.LocalRegistryIdentifier = new RegistryIdentifier("Local");
            this.ResultsRegistryIdentifier = new RegistryIdentifier("Results");
            
            this.CallableGenesProvider = callableGenesProvider;
        }