adding unit tests for PSO subclasses, and fixing bugs