   """
   @spec add(GenServer.server, binary, binary, Keyword.t) :: store_result
   def add(server, key, value, opts \\ []) do
-    execute_kv(server, :ADD, [key, value, ttl_or_default(server, opts)], opts)
+    server_options = get_server_options(server)
+    execute_kv(server, :ADD, [key, value, ttl_or_default(server_options, opts)], opts, server_options)
   end
 
   @doc """

  def decr_cas(server, key, cas, opts \\ []) do
    defaults = [by: 1, default: 0]
    opts = Keyword.merge(defaults, opts)
    execute_k(server, :DECREMENT, [key, Keyword.get(opts, :by), Keyword.get(opts, :default), cas, ttl_or_default(server, opts)], opts)
  end

  @doc """

  """
  @spec replace_cas(GenServer.server, binary, binary, integer, Keyword.t) :: store_result
  def replace_cas(server, key, value, cas, opts \\ []) do
    server_options = get_server_options(server)
    execute_kv(server, :REPLACE, [key, value, cas, ttl_or_default(server_options, opts)], opts, server_options)
  end

  @doc """
