new permutation approach