   """
   def scrape_from_bigquery() do
     Logger.info "Getting repositories from BigQuery to scrape"
-    Krihelinator.Periodic.BigQuery.query()
-    |> async_scrape()
-    |> handle_scraped_data()
+    names = Krihelinator.Periodic.BigQuery.query()
+    async_handle(names)
   end
 
   @doc """

    end
  end

  @doc """
  Persist the scraped data and log results statistics.
  """
  def handle_scraped_data(data_stream) do
    data_stream
    |> Stream.map(fn
      {:ok, data} ->
        Repo.update_or_create_from_data(GH.Repo, data, by: :name)
      otherwise ->
        otherwise
    end)
    |> Stream.map(&simplify_result/1)
    |> Enum.reduce(%{}, fn x, acc -> Map.update(acc, x, 1, &(&1 + 1)) end)
    |> Enum.each(&log_aggregated_results/1)
  end

  def simplify_result({:error, %Ecto.Changeset{}}), do: :validation_error

    Logger.info "Resetting trendiness for all"
    Repo.update_all(GH.Repo, set: [trending: false])
    Logger.info "Scraping trending"
    names = Krihelinator.Periodic.GithubTrending.scrape()
    async_handle(names, trending: true)
  end

  @doc """
