added Strategy patterns for crossover and changing memory element