Small optimizations on solver
Pave way for multiple Solver implementations (again)
Create a new Solver (BruteSolver)