adds the ability to record data on different levels and refactored EvolutionRunner to use the same method.