   end
 
   defp resolve_hook_result({:reply, text}, sock) do
-    irc_cmd(sock, "PRIVMSG", "\##{@channel} RECEIVER: :#{text}")
+    irc_cmd(sock, "PRIVMSG", "\##{@channel} #{@nickname}: :#{text}")
+  end
+
+  defp resolve_hook_result({:reply, to, text}, sock) do
+    irc_cmd(sock, "PRIVMSG", "\##{@channel} #{to}: :#{text}")
   end
 
   defp resolve_hook_result({:msg, text}, sock) do

    message_loop(sock, state)
  end

  def process_hooks(msg, State[text_hooks: text, token_hooks: token], sock) do
    Enum.each(text, fn {_, f} -> resolve_hook_result(f.(msg), sock) end)

    tokens = tokenize(msg)
    Enum.each(token, fn {_, f} -> resolve_hook_result(f.(tokens), sock) end)
  end

  defp tokenize(msg) do

  end
end

defmodule PingHook do
  def run(text) do
    if String.downcase(text) == "ping" do
      {:msg, "pong"}
    end
  end
end

:inets.start
:ssl.start
IRCBot.Connection.start_link
