shiny useful when more subsets than could ever be computed, future work compiler time