adding multiple set construction to diffusion driver