PSO

Done and dusted, lot of reshuffling, abstraction etc.