   end
 
   @spec infer_module(atom) :: atom
+  defp infer_module(:workspace), do: ExTwilio.TaskRouter.Workspace
   defp infer_module(atom) do
-    if atom == :workspace do
-      Module.concat(ExTwilio.TaskRouter, camelize(atom))
-    else
-      Module.concat(ExTwilio, camelize(atom))
-    end
+    Module.concat(ExTwilio, camelize(atom))
   end
 
   @spec camelize(String.t | atom) :: String.t

        ["ExTwilio", "TaskRouter", _] ->
          options = add_workspace_to_options(module, options)

          Config.task_router_url() |> add_segements(module, id, options)
        _ ->
          # Add Account SID segment if not already present
          options = add_account_to_options(module, options)

          url = Config.base_url() |> add_segements(module, id, options)

           # Append .json
          url <> ".json"

    end
  end

  defp add_segments(url, module, id, options) do
    # Append parents
    url = url <> build_segments(:parent, module.parents, options)

