permutation generator added