permutation functions