implement PLSATSolver