add subsets
add permutation