new Solve with recurse