how about we just create a new worker here, and pass in to the constructor any parameters it should use; then the worker can be the thing that knows about the context, and since we have a new worker (and therefore context) each time, we're thread safe and state from previous experiments doesn't affect new ones