 
   @spec poll(pid, binary | integer, binary) :: :ok
   def poll(poller, index, service) do
-    results = Consul.Catalog.service(index, service)
-    GenServer.call(poller, {:poll_response, results})
+    Consul.Catalog.service(index, service)
   end
 
   @spec subscribe(pid, atom, pid) :: :ok

        end
        :ok       = notify_change(new_nodes, state)
        new_state = %{state | nodes: new_nodes, index: consul_index(response)}
      {:error, response} ->
        new_state = %{state | nodes: [], index: consul_index(response)}
    end

    task = async_poll(self, new_state.index, service)

    {:reply, :ok, %{new_state | task: task}}
  end

  def handle_call({:subscribe, module, subscriber}, _from, %{em: em, nodes: nodes} = state) do

        end
        :ok       = notify_change(new_nodes, state)
        new_state = %{state | nodes: new_nodes, index: consul_index(response)}
        task      = async_poll(self, new_state.index, service)
        {:noreply, %{new_state | task: task}}
      {:error, _} ->
        {:noreply, state, @retry_ms}
    end
  end

  # Handle results from polling task
  def handle_info({ref, results}, %{task: %Task{ref: ref}} = state) do
    case results do
      {:ok, %{body: body} = response} ->
        case Discovery.Node.build(body) do
