Work on tidying up job responses - top level methods return exceptions on major issues, anything submitted to a thread returns a dict with the result