added solver class