new solver class