split up solvers' code and docs