Moved solvers to separate file