Refactor Individual::mate_and_reproduce()