Refactor, to make evolve do less logic.
Adding some more comments.