solution function yields uniq solutions