 
   def handle_call({:deleted_handlers, new}, state) do
     old = deleted_handlers()
-    true = :ets.update_element(@table, :deleted_handlers, {2, new})
+    update_data(@deleted_handlers_key, new)
     {:ok, old, state}
   end
 

  end

  def level do
    %{level: level} = read_data!(:translation_data)
    level
  end



  ## Data helpers

  # TODO: Use persistent_term exclusively when we require Erlang/OTP 22+.
  defp new_data do
    _ = Code.ensure_loaded(:persistent_term)

    if not function_exported?(:persistent_term, :get, 2) do
      entries = [
        {@data_key, nil},
        {@deleted_handlers_key, []}
      ]

      _ = :ets.new(@table, [:named_table, :public, {:read_concurrency, true}])
      true = :ets.insert_new(@table, entries)
    end

    @table
  end

  defp delete_data(@table) do
    if function_exported?(:persistent_term, :get, 2) do
      :persistent_term.erase(@data_key)
      :persistent_term.erase(@deleted_handlers_key)
    else
      :ets.delete(@table)
    end
  end

  defp update_translators(fun) do
    data = read_data!(@data_key)
    translators = fun.(data.translators)
    Application.put_env(:logger, :translators, translators)
    update_data(@data_key, %{data | translators: translators})
  end

  defp compute_data({counter, _mode, _discard_threshold, _discard_period}) do
