diff --git a/src/components/metadata.lisp b/src/components/metadata.lisp
index 03f7667..f8fb04a 100644
--- a/src/components/metadata.lisp
+++ b/src/components/metadata.lisp
@@ -12,6 +12,14 @@
                (website-url)
                (and (not (string= path "/")) path)))
 
+(defun complete-metadata (metadata)
+  (loop 
+    :for (key template) :on *default-metadata* :by #'cddr
+    :for value := (getf metadata key)
+    :append (list key (if (functionp template)
+                          (funcall template value)
+                          (or value template)))))
+
 (defparameter *default-metadata*
   (list :title (lambda (title) (format nil "~@[~a - ~]skyizwhite" title))
         :description "The personal website of Akira Tempaku (paku)"
@@ -22,44 +30,35 @@
                      :width 1024)
         :error nil))
 
-(defun create-metadata (&key title
-                             description
-                             canonical
-                             type
-                             image
-                             error)
-  (let ((path (request-uri *request*)))
-    (hsx
-     (<>
-       (meta :charset "UTF-8")
-       (meta :name "viewport" :content "width=device-width, initial-scale=1")
-       (title title)
-       (meta :name "description" :content description)
-       (and (not error)
-            (hsx (<>
-                   (meta :property "og:title" :content title)
-                   (meta :property "og:description" :content description)
-                   (meta :property "og:url" :content (path->url path))
-                   (meta :property "og:type" :content type)
-                   (meta :property "og:site_name" :content "skyizwhite")
-                   (meta :property "og:image" :content (getf image :url))
-                   (meta :property "og:image:width" :content (getf image :width))
-                   (meta :property "og:image:height" :content (getf image :height))
-                   (link :rel "canonical" :href (path->url (or canonical path))))))
-       (link :rel "icon" :type "image/png" :href "/img/favicon-96x96.png" :sizes "96x96")
-       (link :rel "icon" :type "image/svg+xml" :href "/img/favicon.svg")
-       (link :rel "shortcut icon" :href "/img/favicon.ico")
-       (link :rel "apple-touch-icon" :sizes "180x180" :href "/img/apple-touch-icon.png")
-       (meta :name "apple-mobile-web-app-title" :content "skyizwhite")
-       (link :rel "manifest" :href "/img/site.webmanifest")))))
-
-(defun complete-metadata (metadata)
-  (loop 
-    :for (key template) :on *default-metadata* :by #'cddr
-    :for value := (getf metadata key)
-    :append (list key (if (functionp template)
-                          (funcall template value)
-                          (or value template)))))
-
 (defcomp ~metadata (&key metadata)
-  (apply #'create-metadata (complete-metadata metadata)))
+  (destructuring-bind (&key title
+                            description
+                            canonical
+                            type
+                            image
+                            error)
+      (complete-metadata metadata)
+    (let ((path (request-uri *request*)))
+      (hsx
+       (<>
+         (meta :charset "UTF-8")
+         (meta :name "viewport" :content "width=device-width, initial-scale=1")
+         (title title)
+         (meta :name "description" :content description)
+         (and (not error)
+              (hsx (<>
+                     (meta :property "og:title" :content title)
+                     (meta :property "og:description" :content description)
+                     (meta :property "og:url" :content (path->url path))
+                     (meta :property "og:type" :content type)
+                     (meta :property "og:site_name" :content "skyizwhite")
+                     (meta :property "og:image" :content (getf image :url))
+                     (meta :property "og:image:width" :content (getf image :width))
+                     (meta :property "og:image:height" :content (getf image :height))
+                     (link :rel "canonical" :href (path->url (or canonical path))))))
+         (link :rel "icon" :type "image/png" :href "/img/favicon-96x96.png" :sizes "96x96")
+         (link :rel "icon" :type "image/svg+xml" :href "/img/favicon.svg")
+         (link :rel "shortcut icon" :href "/img/favicon.ico")
+         (link :rel "apple-touch-icon" :sizes "180x180" :href "/img/apple-touch-icon.png")
+         (meta :name "apple-mobile-web-app-title" :content "skyizwhite")
+         (link :rel "manifest" :href "/img/site.webmanifest"))))))