Refactoring DifferentialEvolution to use a DifferentialEvolutionBuilder