working on Future.all to return a failed future if one of the futures fails