added solve() to Solver