Do major cleanup in Solver, move SolveFor enum to Solver
Condense the solver's algorithm-getting code into one method