Move solver to solver.go