update evolve method