refactor population evolution