updated PSO wrapper