I needed more information from the population.  So the PopulationData object takes the entire current population as an argument.  This could potentially cause issues if the population is very large.  That hasn't been tested.