add sampler implementation