Types of solvers