added Q promises to better handle waiting for workers to launch and register before starting tests