diff --git a/src/js/SuiWeb.js b/src/js/SuiWeb.js
index 22f8b28..9df8812 100644
--- a/src/js/SuiWeb.js
+++ b/src/js/SuiWeb.js
@@ -11,6 +11,9 @@ export class SuiWeb
      *
      * @param {HTMLElement} element
      * The element to add the rendered node to.
+     *
+     * @returns {Node}
+     * The resulting element.
      */
     static render(data, element)
     {
@@ -19,14 +22,33 @@ export class SuiWeb
             let descriptor = data[0];
             let args = data.slice(1);
 
-            if (typeof descriptor === "function")
+            if (typeof descriptor === "function" || typeof descriptor === "string")
             {
-                SuiWeb.render(descriptor(...args), element);
-            }
-            else if (typeof descriptor === "string")
-            {
-                let result = element.ownerDocument.createElement(descriptor);
-                element.appendChild(result);
+                /**
+                 * @type {HTMLElement}
+                 */
+                let result;
+
+                if (typeof descriptor === "function")
+                {
+                    /**
+                     * @type {any[]}
+                     */
+                    let arg = [];
+
+                    if (typeof args[0] === "object" && !Array.isArray(args[0]))
+                    {
+                        arg = [args[0]];
+                        args = args.slice(1);
+                    }
+
+                    result = /** @type {HTMLElement} */ (SuiWeb.render(descriptor(...arg), element));
+                }
+                else
+                {
+                    result = element.ownerDocument.createElement(descriptor);
+                    element.appendChild(result);
+                }
 
                 for (let arg of args)
                 {
@@ -39,6 +61,8 @@ export class SuiWeb
                         SuiWeb.render(arg, result);
                     }
                 }
+
+                return result;
             }
             else
             {
@@ -47,7 +71,7 @@ export class SuiWeb
         }
         else if (typeof data === "string")
         {
-            element.appendChild(element.ownerDocument.createTextNode(data));
+            return element.appendChild(element.ownerDocument.createTextNode(data));
         }
         else
         {