implement bitset sampler (is slower actually) and restructure to suit