replace completer with Future.wait