added elitism option