added experimental design
building range controllers in the constructor

so they can come asynchronously from the experiment design