permutations done
almost done
done