`Future` already handles the failure case, wouldn't it work to use `Future[T]` directly?