use sampleable as base of distributions