refactor mk 3 - now with working PSO