Interim commit:  untested - probably broken - major additions: context, setups, driver and miscellaneous code rework