starting work on the solver