clean up of the code

and fixing locaiton of the backtrack method in the Solver class, so it
only does it once :)