Added a solver typeclass