wip - V2

ref https://github.com/canaryio/canary/issues/6
The sampler should also be swappable.