added permutation class