diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz
index 7507807..3709ff3 100644
Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ
diff --git a/.yarnrc.yml b/.yarnrc.yml
index 3931d19..ea7d98a 100644
--- a/.yarnrc.yml
+++ b/.yarnrc.yml
@@ -1,7 +1,8 @@
 nodeLinker: node-modules
 
 plugins:
-  - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
-    spec: "@yarnpkg/plugin-interactive-tools"
+    - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
+      spec: "@yarnpkg/plugin-interactive-tools"
 
 yarnPath: .yarn/releases/yarn-3.2.0.cjs
+checksumBehavior: update
diff --git a/api/collections/general.yml b/api/collections/general.yml
index 8373452..0c984ef 100644
--- a/api/collections/general.yml
+++ b/api/collections/general.yml
@@ -22,237 +22,51 @@ meta:
           primaryText: firstname
           columns:
               - public
-              - firstname
-              - lastname
-              - companyName
         # Desktop
         - type: table
           mediaQuery: "(min-width:600px)"
           columns:
               - public
-              - firstname
-              - lastname
-              - companyName
+              - meta.metaTitle
 
-    tabsSection:
+    tablist:
         meta:
-            expand: media
+            expand: general
         tabs:
             - name: general
               meta:
                   label: { de: "Allgemein", en: "General" }
-              fields:
-                  - name: public
-                    type: boolean
-                    meta:
-                        defaultValue: true
-                        label:
-                            de: Veröffentlicht
-                            en: Public
-                        helperText:
-                            de: "Alle allgemeinen Informationen werden auf der Seite angezeigt."
-                            en: "All general information are displayed on the page."
+              subFields:
+                  - source: public
+                  - source: meta.metaDescription
+
             - name: meta
               meta:
                   label: { de: "Meta", en: "Meta" }
-              fields:
-                  - name: meta
-                    type: object
-                    subFields:
-                        - name: metaTitle
-                          type: string
-                          meta:
-                              label: { de: "Titel der Webseite", en: "Page Title" }
-                        - name: metaDescription
-                          type: string
-                          meta:
-                              label: { de: "Beschreibung der Webseite", en: "Page Description" }
-                        - name: metaTagRobots
-                          type: string[]
-                          meta:
-                              widget: chipArray
-                              label:
-                                  de: Robots
-                                  en: Robots
-                              defaultValue: []
-                              autocomplete: true
-                              choices:
-                                  - { id: "noindex", name: "noindex" }
-                                  - { id: "index", name: "index" }
-                                  - { id: "follow", name: "follow" }
-                                  - { id: "nofollow", name: "nofollow" }
-                                  - { id: "noimageindex", name: "noimageindex" }
-                                  - { id: "none", name: "none" }
-                                  - { id: "noarchive", name: "noarchive" }
-                                  - { id: "nocache", name: "nocache" }
-                                  - { id: "nosnippet", name: "nosnippet" }
-                                  - { id: "nnavailable_after", name: "nnavailable_after" }
-                              helperText:
-                                  de: "<strong>Noindex</strong>: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.<br/><strong>index</strong>: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.<br/><strong>follow</strong>: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.<br/><strong>nofollow</strong>: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.<br/><strong>noimageindex</strong>: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.<br/><strong>none</strong>: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.<br/><strong>noarchive</strong>: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.<br/><strong>nocache</strong>: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.<br/><strong>nosnippet</strong>: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.<br/><strong>nnavailable_after</strong>: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.<br/>"
-                                  en: "<strong>Noindex</strong>: Tells a search engine not to index a page.<br/><strong>index</strong>: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.<br/><strong>follow</strong>: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.<br/><strong>nofollow</strong>: Tells a crawler not to follow any links on a page or pass along any link equity.<br/><strong>noimageindex</strong>: Tells a crawler not to index any images on a page.<br/><strong>none</strong>: Equivalent to using both the noindex and nofollow tags simultaneously.<br/><strong>noarchive</strong>: Search engines should not show a cached link to this page on a SERP.<br/><strong>nocache</strong>: Same as noarchive, but only used by Internet Explorer and Firefox.<br/><strong>nosnippet</strong>: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.<br/><strong>nnavailable_after</strong>: Search engines should no longer index this page after a particular date.<br/>"
-                        - name: metaKeywords
-                          type: string
-                          meta:
-                              label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" }
-                              helperText:
-                                  de: "Beispiel: Stichwort1, Stichwort2, Stichwort3"
-                                  en: "Example: keyword1, keyword2, keyword3"
+                  source: meta
+              subFields:
+                  - source: meta
+
             - name: person
               meta:
                   label: { de: "Person", en: "Person" }
-              fields:
-                  - name: person
-                    type: object
-                    subFields:
-                        - name: salutation
-                          type: string
-                          meta:
-                              label: { de: "Anrede", en: "Salutation" }
-                        - name: firstname
-                          type: string
-                          meta:
-                              label: { de: "Vorname", en: "Firstname" }
-                        - name: lastname
-                          type: string
-                          meta:
-                              label: { de: "Nachname", en: "Lastname" }
-                        - name: additional
-                          type: string
-                          meta:
-                              label: { de: "Zusatz", en: "Additional" }
-                        - name: street
-                          type: string
-                          meta:
-                              label: { de: "Straße", en: "Street" }
-                        - name: postcode
-                          type: string
-                          meta:
-                              label: { de: "Postleitzahl", en: "Postcode" }
-                        - name: city
-                          type: string
-                          meta:
-                              label: { de: "Ort", en: "City" }
-                        - name: tel
-                          type: string
-                          meta:
-                              label: { de: "Telefonnummer", en: "Phone number" }
-                        - name: fax
-                          type: string
-                          meta:
-                              label: { de: "Faxnummer", en: "Fax number" }
-                        - name: mobile
-                          type: string
-                          meta:
-                              label: { de: "Handynummer", en: "Mobile number" }
-                        - name: email
-                          type: string
-                          meta:
-                              label: { de: "E-Mail", en: "E-Mail" }
+              subFields:
+                  - source: person
             - name: company
               meta:
                   label: { de: "Unternehmen", en: "Company" }
-              fields:
-                  - name: person
-                    type: object
-                    subFields:
-                        - name: companyName
-                          type: string
-                          meta:
-                              label: { de: "Name des Unternehmens", en: "Company Name" }
-                        - name: companyWebUrl
-                          type: string
-                          meta:
-                              label: { de: "URL zur Webseite", en: "Website URL" }
-                        - name: companyAddresses
-                          type: object[]
-                          meta:
-                              label:
-                                  de: Adresse
-                                  en: Adresse
-                              css:
-                          subFields:
-                              - name: street
-                                type: string
-                                meta:
-                                    label: { de: "Straße", en: "Street" }
-                              - name: houseNr
-                                type: string
-                                meta:
-                                    label: { de: "Hausnummer", en: "House number" }
-                              - name: postcode
-                                type: string
-                                meta:
-                                    label: { de: "PLZ", en: "ZIP" }
-                              - name: city
-                                type: string
-                                meta:
-                                    label: { de: "Ort", en: "City" }
-                              - name: tel
-                                type: string
-                                meta:
-                                    label: { de: "Telefon", en: "Phone number" }
-                              - name: fax
-                                type: string
-                                meta:
-                                    label: { de: "Fax", en: "Fax" }
-                              - name: email
-                                type: string
-                                meta:
-                                    label: { de: "E-Mail", en: "E-Mail" }
+              subFields:
+                  - source: company
             - name: media
               meta:
                   label: { de: "Medien", en: "Media" }
-              fields:
-                  - name: media
-                    type: object
-                    subFields:
-                        - name: favicon
-                          type: file
-                          meta:
-                              label: { de: "Favicon", en: "Favicon" }
-                              helperText:
-                                  de: "Ein Favicon ist ein kleines Icon, Symbol oder Logo, das von Webbrowsern verwendet wird, um eine Website auf wiedererkennbare Weise zu kennzeichnen."
-                                  en: "A favicon is a small icon, symbol, or logo used by web browsers to identify a website in a recognizable way."
-                        - name: brand
-                          type: file
-                          meta:
-                              label: { de: "Logo / Brand", en: "Logo / Brand" }
-                              helperText:
-                                  de: "Logo der Seite"
-                                  en: "Page Logo"
-                        - name: mediaFiles
-                          type: object[]
-                          meta:
-                              label: { de: "Dateien", en: "Files" }
-                          subFields:
-                              - name: title
-                                type: string
-                                meta:
-                                    label: { de: "Datei-Titel", en: "File Title" }
-                              - name: alternateText
-                                type: string
-                                meta:
-                                    label: { de: "Alternativer Text", en: "Alternate Text" }
-                              - name: id
-                                type: string
-                                meta:
-                                    editableWhileCreating: true
-                                    label: { de: "Technischer Name / ID", en: "Technical name / ID" }
-                                    helperText:
-                                        de: "Achtung: Eine technische ID ist meist fest im Code der Seite verknüpft und darf, wenn sie einmal gesetzt wurde, nicht verändert werden!"
-                                        en: "Attention: A technical ID is usually permanently linked in the code of the page and, once it has been set, must not be changed!"
-                              - name: file
-                                type: file
-                                meta:
-                                    label: { de: "Datei", en: "File" }
+              subFields:
+                  - source: media
             - name: copyright
               meta:
                   label: { de: "Copyright", en: "Copyright" }
-              fields:
-                  - name: copyrightText
-                    type: string
-                    meta:
-                        label: { de: "Copyright Text", en: "Copyright Text" }
+              subFields:
+                  - source: copyrightText
 
 imageFilter:
     xs:
@@ -307,4 +121,210 @@ permissions:
             put: false
             delete: false
 
-fields: []
+fields:
+    - name: public
+      type: boolean
+      meta:
+          hideInRoot: true
+          defaultValue: true
+          label:
+              de: Veröffentlicht
+              en: Public
+          helperText:
+              de: "Alle allgemeinen Informationen werden auf der Seite angezeigt."
+              en: "All general information are displayed on the page."
+
+    - name: meta
+      type: object
+      meta:
+          hideInRoot: true
+      subFields:
+          - name: metaTitle
+            type: string
+            meta:
+                label: { de: "Titel der Webseite", en: "Page Title" }
+          - name: metaDescription
+            type: string
+            meta:
+                label: { de: "Beschreibung der Webseite", en: "Page Description" }
+          - name: metaTagRobots
+            type: string[]
+            meta:
+                widget: chipArray
+                label:
+                    de: Robots
+                    en: Robots
+                defaultValue: []
+                autocomplete: true
+                choices:
+                    - { id: "noindex", name: "noindex" }
+                    - { id: "index", name: "index" }
+                    - { id: "follow", name: "follow" }
+                    - { id: "nofollow", name: "nofollow" }
+                    - { id: "noimageindex", name: "noimageindex" }
+                    - { id: "none", name: "none" }
+                    - { id: "noarchive", name: "noarchive" }
+                    - { id: "nocache", name: "nocache" }
+                    - { id: "nosnippet", name: "nosnippet" }
+                    - { id: "nnavailable_after", name: "nnavailable_after" }
+                helperText:
+                    de: "<strong>Noindex</strong>: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.<br/><strong>index</strong>: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.<br/><strong>follow</strong>: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.<br/><strong>nofollow</strong>: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.<br/><strong>noimageindex</strong>: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.<br/><strong>none</strong>: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.<br/><strong>noarchive</strong>: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.<br/><strong>nocache</strong>: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.<br/><strong>nosnippet</strong>: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.<br/><strong>nnavailable_after</strong>: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.<br/>"
+                    en: "<strong>Noindex</strong>: Tells a search engine not to index a page.<br/><strong>index</strong>: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.<br/><strong>follow</strong>: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.<br/><strong>nofollow</strong>: Tells a crawler not to follow any links on a page or pass along any link equity.<br/><strong>noimageindex</strong>: Tells a crawler not to index any images on a page.<br/><strong>none</strong>: Equivalent to using both the noindex and nofollow tags simultaneously.<br/><strong>noarchive</strong>: Search engines should not show a cached link to this page on a SERP.<br/><strong>nocache</strong>: Same as noarchive, but only used by Internet Explorer and Firefox.<br/><strong>nosnippet</strong>: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.<br/><strong>nnavailable_after</strong>: Search engines should no longer index this page after a particular date.<br/>"
+          - name: metaKeywords
+            type: string
+            meta:
+                label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" }
+                helperText:
+                    de: "Beispiel: Stichwort1, Stichwort2, Stichwort3"
+                    en: "Example: keyword1, keyword2, keyword3"
+
+    - name: person
+      type: object
+      meta:
+          hideInRoot: true
+      subFields:
+          - name: salutation
+            type: string
+            meta:
+                label: { de: "Anrede", en: "Salutation" }
+          - name: firstname
+            type: string
+            meta:
+                label: { de: "Vorname", en: "Firstname" }
+          - name: lastname
+            type: string
+            meta:
+                label: { de: "Nachname", en: "Lastname" }
+          - name: additional
+            type: string
+            meta:
+                label: { de: "Zusatz", en: "Additional" }
+          - name: street
+            type: string
+            meta:
+                label: { de: "Straße", en: "Street" }
+          - name: postcode
+            type: string
+            meta:
+                label: { de: "Postleitzahl", en: "Postcode" }
+          - name: city
+            type: string
+            meta:
+                label: { de: "Ort", en: "City" }
+          - name: tel
+            type: string
+            meta:
+                label: { de: "Telefonnummer", en: "Phone number" }
+          - name: fax
+            type: string
+            meta:
+                label: { de: "Faxnummer", en: "Fax number" }
+          - name: mobile
+            type: string
+            meta:
+                label: { de: "Handynummer", en: "Mobile number" }
+          - name: email
+            type: string
+            meta:
+                label: { de: "E-Mail", en: "E-Mail" }
+
+    - name: company
+      type: object
+      meta:
+          hideInRoot: true
+      subFields:
+          - name: companyName
+            type: string
+            meta:
+                label: { de: "Name des Unternehmens", en: "Company Name" }
+          - name: companyWebUrl
+            type: string
+            meta:
+                label: { de: "URL zur Webseite", en: "Website URL" }
+          - name: companyAddresses
+            type: object[]
+            meta:
+                label:
+                    de: Adresse
+                    en: Adresse
+                css:
+            subFields:
+                - name: street
+                  type: string
+                  meta:
+                      label: { de: "Straße", en: "Street" }
+                - name: houseNr
+                  type: string
+                  meta:
+                      label: { de: "Hausnummer", en: "House number" }
+                - name: postcode
+                  type: string
+                  meta:
+                      label: { de: "PLZ", en: "ZIP" }
+                - name: city
+                  type: string
+                  meta:
+                      label: { de: "Ort", en: "City" }
+                - name: tel
+                  type: string
+                  meta:
+                      label: { de: "Telefon", en: "Phone number" }
+                - name: fax
+                  type: string
+                  meta:
+                      label: { de: "Fax", en: "Fax" }
+                - name: email
+                  type: string
+                  meta:
+                      label: { de: "E-Mail", en: "E-Mail" }
+
+    - name: media
+      type: object
+      meta:
+          hideInRoot: true
+      subFields:
+          - name: favicon
+            type: file
+            meta:
+                label: { de: "Favicon", en: "Favicon" }
+                helperText:
+                    de: "Ein Favicon ist ein kleines Icon, Symbol oder Logo, das von Webbrowsern verwendet wird, um eine Website auf wiedererkennbare Weise zu kennzeichnen."
+                    en: "A favicon is a small icon, symbol, or logo used by web browsers to identify a website in a recognizable way."
+          - name: brand
+            type: file
+            meta:
+                label: { de: "Logo / Brand", en: "Logo / Brand" }
+                helperText:
+                    de: "Logo der Seite"
+                    en: "Page Logo"
+          - name: mediaFiles
+            type: object[]
+            meta:
+                label: { de: "Dateien", en: "Files" }
+            subFields:
+                - name: title
+                  type: string
+                  meta:
+                      label: { de: "Datei-Titel", en: "File Title" }
+                - name: alternateText
+                  type: string
+                  meta:
+                      label: { de: "Alternativer Text", en: "Alternate Text" }
+                - name: id
+                  type: string
+                  meta:
+                      editableWhileCreating: true
+                      label: { de: "Technischer Name / ID", en: "Technical name / ID" }
+                      helperText:
+                          de: "Achtung: Eine technische ID ist meist fest im Code der Seite verknüpft und darf, wenn sie einmal gesetzt wurde, nicht verändert werden!"
+                          en: "Attention: A technical ID is usually permanently linked in the code of the page and, once it has been set, must not be changed!"
+                - name: file
+                  type: file
+                  meta:
+                      label: { de: "Datei", en: "File" }
+
+    - name: copyrightText
+      type: string
+      meta:
+          hideInRoot: true
+          label: { de: "Copyright Text", en: "Copyright Text" }