move sampling to extension impl level, less internal messaging