refactoring the update process
bug fix in the evolution calculation