added new subsets implementation