formatted evolve fn