       :path_prefix => path_prefix
     }
 
-    Agent.start_link(fn->
-      %{sessions: [], driver_info: driver_info}
-    end, name: __MODULE__)
+    state = %{sessions: [], driver_info: driver_info}
+    :gen_server.start_link({:local, __MODULE__}, __MODULE__, state, [])
+  end
+
+
+  def init(state) do
+    {:ok, state}
+  end
+
+
+  def handle_call(:driver_info, _from, state) do
+    {:reply, state[:driver_info], state}
   end
 
 
   def driver_info do
-    Agent.get __MODULE__, fn(state)->
-      {:ok, state[:driver_info]}
-    end
+    driver_info = :gen_server.call __MODULE__, :driver_info, 60000
+    {:ok, driver_info}
   end
 
 end

    end

    browser = options[:browser]  || default_browser
    driver_type = options[:driver_type] || Application.get_env(:hound, :driver_type, Hound.JsonDriver)
    host = options[:host] || Application.get_env(:hound, :host, "http://localhost")
    port = options[:port] || Application.get_env(:hound, :host, default_port)
    path_prefix = options[:path_prefix] || Application.get_env(:hound, :path_prefix, default_path_prefix)


    driver_info = %{

  use GenServer.Behaviour

  def start_link(options \\ []) do
    driver = options[:driver] || :application.get_env(:hound, :driver, "selenium")

    {default_port, default_path_prefix, default_browser} = case driver do
      "chrome_driver" ->
