     session_id = pid_info[:all_sessions][session_name]
 
     if session_id do
-      pid_info_update = HashDict.put(pid_info, :current, session_id)
+      pid_info_update = Map.put(pid_info, :current, session_id)
     else
       {:ok, session_id} = Hound.Session.create_session(driver_info[:browser])
 
-      all_sessions_update = HashDict.put(pid_info[:all_sessions], session_name, session_id)
-      pid_info_update = pid_info
-        |> HashDict.put(:current, session_id)
-        |> HashDict.put(:all_sessions, all_sessions_update)
+      all_sessions_update = Map.put(pid_info[:all_sessions], session_name, session_id)
+      pid_info_update = Map.merge(pid_info, %{
+        current: session_id,
+        all_sessions: all_sessions_update
+      })
     end
 
-    new_state = HashDict.put(state, pid, pid_info_update)
+    new_state = Map.put(state, pid, pid_info_update)
     {:reply, session_id, new_state}
   end
 
 
   def handle_call({:all_sessions, pid}, _from, state) do
-    if HashDict.has_key?(state, pid) do
+    if Map.has_key?(state, pid) do
       {:reply, state[pid][:all_sessions], state}
     else
       {:reply, [], state}



  def handle_call({:current_session, pid}, _from, state) do
    if HashDict.has_key?(state, pid) do
      {:reply, state[pid][:current], state}
    else
      {:reply, nil, state}

      nil ->
        {:ok, session_id} = Hound.Session.create_session(driver_info[:browser])

        all_sessions = %{default: session_id}
        session_info = %{current: session_id, all_sessions: all_sessions}
        state_upgrade = %{} |> Map.put(pid, session_info)
        new_state = Map.merge(state, state_upgrade)
        {:reply, session_id, new_state}
      session_id ->
        {:reply, session_id, state}
