added make_solver function