changes from pairing, plus a cuter way to iterate over solutions