Removed Setup method and moved its logic into constructor.  This leads to a cleaner client api as there are now clear pairs of methods for init/shutdown and start/stop