added pareto functionality