     end
   end
 
-  defp execute_k(server, command, [key | rest], opts \\ []) do
-    execute(server, command, [key_with_namespace(server, key) | rest], opts)
-    |> decode_response(server)
-  end
-
-  defp execute_kv(server, command, [key | [value | rest]], opts) do
-    execute(server, command, [key_with_namespace(server, key) | [encode(server, value) | rest]], opts)
-    |> decode_response(server)
+  defp execute_k(server, command, args, opts \\ []), do: execute_k(server, command, args, opts, get_server_options(server))
+  defp execute_k(server, command, [key | rest], opts, server_options) do
+    execute(server, command, [key_with_namespace(server_options, key) | rest], opts)
+    |> decode_response(server_options)
+  end
+
+  defp execute_kv(server, command, args, opts), do: execute_kv(server, command, args, opts, get_server_options(server))
+  defp execute_kv(server, command, [key | [value | rest]], opts, server_options) do
+    execute(server, command, [key_with_namespace(server_options, key) | [encode(server_options, value) | rest]], opts)
+    |> decode_response(server_options)
   end
 
   defp execute(server, command, args, opts \\ []) do
     Connection.execute(server, command, args, opts)
   end
 
-  defp execute_quiet_k(server, commands) do
+  defp execute_quiet_k(server, commands), do: execute_quiet_k(server, commands, get_server_options(server))
+  defp execute_quiet_k(server, commands, server_options) do
     commands = Enum.map(commands, fn ({command, [key | rest], opts}) ->
-      {command, [key_with_namespace(server, key) | rest], opts}
+      {command, [key_with_namespace(server_options, key) | rest], opts}
     end)
     execute_quiet(server, commands)
-    |> decode_multi_response(server)
-  end
-
-  defp execute_quiet_kv(server, commands) do
+    |> decode_multi_response(server_options)
+  end
+
+  defp execute_quiet_kv(server, commands, server_options) do
     commands = Enum.map(commands, fn ({command, [key | [value | rest]], opts}) ->
-      {command, [key_with_namespace(server, key) | [encode(server, value) | rest]], opts}
+      {command, [key_with_namespace(server_options, key) | [encode(server_options, value) | rest]], opts}
     end)
     execute_quiet(server, commands)
-    |> decode_multi_response(server)
+    |> decode_multi_response(server_options)
   end
 
   defp execute_quiet(server, commands) do

  """
  @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)
  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 """
