diff --git a/config/install/core.entity_form_display.user.user.default.yml b/config/install/core.entity_form_display.user.user.default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8dc67d81c6a90e69b4a27755aeffb343ad2b989e
--- /dev/null
+++ b/config/install/core.entity_form_display.user.user.default.yml
@@ -0,0 +1,66 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.user.user.field_uw_first_name
+    - field.field.user.user.field_uw_last_name
+  module:
+    - path
+    - user
+id: user.user.default
+targetEntityType: user
+bundle: user
+mode: default
+content:
+  account:
+    weight: 2
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  contact:
+    weight: 5
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_uw_first_name:
+    weight: 0
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings:
+      maxlength:
+        maxlength_js: null
+        maxlength_js_label: 'Content limited to @limit characters, remaining: <strong>@remaining</strong>'
+    type: string_textfield
+    region: content
+  field_uw_last_name:
+    weight: 1
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+    type: string_textfield
+    region: content
+  language:
+    weight: 4
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  path:
+    type: path
+    weight: 7
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  simplesamlphp_auth_user_enable:
+    weight: 3
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  timezone:
+    weight: 6
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden:
+  langcode: true
diff --git a/config/install/core.entity_view_display.user.user.default.yml b/config/install/core.entity_view_display.user.user.default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2fc5c7dd6b9fecfcc5e6071a586b4aff73a879dc
--- /dev/null
+++ b/config/install/core.entity_view_display.user.user.default.yml
@@ -0,0 +1,42 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.user.user.field_uw_first_name
+    - field.field.user.user.field_uw_last_name
+  module:
+    - user
+id: user.user.default
+targetEntityType: user
+bundle: user
+mode: default
+content:
+  field_uw_first_name:
+    weight: 0
+    label: above
+    settings:
+      link_to_entity: false
+    third_party_settings: {  }
+    type: string
+    region: content
+  field_uw_last_name:
+    weight: 1
+    label: above
+    settings:
+      link_to_entity: false
+    third_party_settings: {  }
+    type: string
+    region: content
+  member_for:
+    weight: 2
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  role_expire:
+    weight: 3
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden:
+  langcode: true
+  realname: true
diff --git a/config/install/field.field.user.user.field_uw_first_name.yml b/config/install/field.field.user.user.field_uw_first_name.yml
new file mode 100644
index 0000000000000000000000000000000000000000..15573b2d50c4e02cc0b49be1992fe135d89de5a6
--- /dev/null
+++ b/config/install/field.field.user.user.field_uw_first_name.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.user.field_uw_first_name
+  module:
+    - user
+id: user.user.field_uw_first_name
+field_name: field_uw_first_name
+entity_type: user
+bundle: user
+label: 'First name'
+description: ''
+required: true
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings: {  }
+field_type: string
diff --git a/config/install/field.field.user.user.field_uw_last_name.yml b/config/install/field.field.user.user.field_uw_last_name.yml
new file mode 100644
index 0000000000000000000000000000000000000000..229d504158d8696ec65e173721e3940558c487ad
--- /dev/null
+++ b/config/install/field.field.user.user.field_uw_last_name.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.user.field_uw_last_name
+  module:
+    - user
+id: user.user.field_uw_last_name
+field_name: field_uw_last_name
+entity_type: user
+bundle: user
+label: 'Last name'
+description: ''
+required: true
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings: {  }
+field_type: string
diff --git a/config/install/field.storage.user.field_uw_first_name.yml b/config/install/field.storage.user.field_uw_first_name.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7d9e6270c8265a667b4f56c01b2c74d915775978
--- /dev/null
+++ b/config/install/field.storage.user.field_uw_first_name.yml
@@ -0,0 +1,20 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+id: user.field_uw_first_name
+field_name: field_uw_first_name
+entity_type: user
+type: string
+settings:
+  max_length: 255
+  is_ascii: false
+  case_sensitive: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/install/field.storage.user.field_uw_last_name.yml b/config/install/field.storage.user.field_uw_last_name.yml
new file mode 100644
index 0000000000000000000000000000000000000000..18a97c24329b820bcf05eb4664ee56c6c819dd01
--- /dev/null
+++ b/config/install/field.storage.user.field_uw_last_name.yml
@@ -0,0 +1,20 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+id: user.field_uw_last_name
+field_name: field_uw_last_name
+entity_type: user
+type: string
+settings:
+  max_length: 255
+  is_ascii: false
+  case_sensitive: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_blockquote.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_blockquote.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2109bbbb15bbc59fca18a40ed037e656527941eb
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_blockquote.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_blockquote
+block_id: 'inline_block:uw_cbl_blockquote'
+category: uw_bc_content
+label: Blockquote
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/blockquote.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_call_to_action.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_call_to_action.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ca613476f29f4be0f78212e42be298bd75476cdd
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_call_to_action.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_call_to_action
+block_id: 'inline_block:uw_cbl_call_to_action'
+category: uw_bc_content
+label: 'Call to action'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/calltoaction.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_copy_text.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_copy_text.yml
new file mode 100644
index 0000000000000000000000000000000000000000..55883cd1722b371aebc24457399c5d3a82c91317
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_copy_text.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_copy_text
+block_id: 'inline_block:uw_cbl_copy_text'
+category: uw_bc_content
+label: 'Copy text'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/copytext.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facebook.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facebook.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1507c1dc51e49113cc3b7b4537b885a9d546c5ed
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facebook.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_facebook
+block_id: 'inline_block:uw_cbl_facebook'
+category: uw_bc_external_embeds
+label: Facebook
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/facebook.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facts_and_figures.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facts_and_figures.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bc44f0009dc5743945e7d9b47088bb6144e103c5
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_facts_and_figures.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_facts_and_figures
+block_id: 'inline_block:uw_cbl_facts_and_figures'
+category: uw_bc_content
+label: 'Facts and figures'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/factsandfigures.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_google_maps.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_google_maps.yml
new file mode 100644
index 0000000000000000000000000000000000000000..db4d95c5b53b3857fc64a0dd134c159f7483e844
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_google_maps.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_google_maps
+block_id: 'inline_block:uw_cbl_google_maps'
+category: uw_bc_external_embeds
+label: 'Google Maps'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/maps_google.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2d03d2bd88cae17ccb1c7a0ef5c34b89e51c4e62
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_image
+block_id: 'inline_block:uw_cbl_image'
+category: uw_bc_content
+label: 'Full width image'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/fullwidthimage.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image_gallery.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image_gallery.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f6d9e53de9aa60c21bec100b0785a458406b4a2c
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_image_gallery.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_image_gallery
+block_id: 'inline_block:uw_cbl_image_gallery'
+category: uw_bc_content
+label: 'Image gallery'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/imagegallery.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_instagram.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_instagram.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6269319f2ed5716c5706bc7d25471c4bee49e23a
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_instagram.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_instagram
+block_id: 'inline_block:uw_cbl_instagram'
+category: uw_bc_external_embeds
+label: Instagram
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/instagram.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_mailman.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_mailman.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9f858c5326fef16b7de81b7caf52344b768ee727
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_mailman.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_mailman
+block_id: 'inline_block:uw_cbl_mailman'
+category: uw_bc_content
+label: 'Mailman subscription'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/mailman.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_powerbi.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_powerbi.yml
new file mode 100644
index 0000000000000000000000000000000000000000..db75c5040b33c25a6720a0093b23bf7ba3cb42b6
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_powerbi.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_powerbi
+block_id: 'inline_block:uw_cbl_powerbi'
+category: uw_bc_external_embeds
+label: PowerBI
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/powerbi.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_related_links.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_related_links.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3755517912e1b1f8cd6838d6b022bb3a5a2d1bc8
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_related_links.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_related_links
+block_id: 'inline_block:uw_cbl_related_links'
+category: uw_bc_content
+label: 'Related links'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/relatedlinks.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_remote_video.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_remote_video.yml
new file mode 100644
index 0000000000000000000000000000000000000000..afef66aef9f71fadf1011f53f6b1cb799464571b
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_remote_video.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_remote_video
+block_id: 'inline_block:uw_cbl_remote_video'
+category: uw_bc_external_embeds
+label: 'Remote video'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/video.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_tableau.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_tableau.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a3dd534736d8daf1c099840fa70dc56ef551087d
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_tableau.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_tableau
+block_id: 'inline_block:uw_cbl_tableau'
+category: uw_bc_external_embeds
+label: 'Tableau visualization'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/tableau.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_timeline.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_timeline.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0fab7b5952639130d82f327d6c3e7997c2d8646b
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_timeline.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_timeline
+block_id: 'inline_block:uw_cbl_timeline'
+category: uw_bc_content
+label: Timeline
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/timeline.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_twitter.yml b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_twitter.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c2659882ef84a6233fe07f394a4dadbe27c6352c
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.inline_blockuw_cbl_twitter.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: inline_blockuw_cbl_twitter
+block_id: 'inline_block:uw_cbl_twitter'
+category: uw_bc_external_embeds
+label: Twitter
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/twitter.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_blog_teaser.yml b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_blog_teaser.yml
new file mode 100644
index 0000000000000000000000000000000000000000..954b14e6754b7580cccca6bd4372b9de508533df
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_blog_teaser.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: uw_cbl_blog_teaser
+block_id: uw_cbl_blog_teaser
+category: uw_bc_teasers
+label: 'Blog post teaser'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/blogteaser.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_event_teaser.yml b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_event_teaser.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9c4991a047c5d4ef7a79256e713457d1826ad0bc
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_event_teaser.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: uw_cbl_event_teaser
+block_id: uw_cbl_event_teaser
+category: uw_bc_teasers
+label: 'Event teaser'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/eventteaser.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_multi_type_list.yml b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_multi_type_list.yml
new file mode 100644
index 0000000000000000000000000000000000000000..86eb077fb78e2c29310c295ac45b8cb07c0c980a
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_multi_type_list.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: uw_cbl_multi_type_list
+block_id: uw_cbl_multi_type_list
+category: uw_bc_listings
+label: 'Multi-type list'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/multitypelist.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_news_teaser.yml b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_news_teaser.yml
new file mode 100644
index 0000000000000000000000000000000000000000..84e191e1fd5757ab2dbf5107d837ea1c5ff2764b
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.uw_cbl_news_teaser.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: uw_cbl_news_teaser
+block_id: uw_cbl_news_teaser
+category: uw_bc_teasers
+label: 'News item teaser'
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/newsteaser.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_blogs-blogs_listing_block.yml b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_blogs-blogs_listing_block.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9e8ffbd62bb6e1a5126b13c83b4f0d70dc066600
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_blogs-blogs_listing_block.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: views_blockuw_view_blogs-blogs_listing_block
+block_id: 'views_block:uw_view_blogs-blogs_listing_block'
+category: uw_bc_listings
+label: 'Blog post list'
+weight: -2
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/bloglist.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_events-events_listing_block.yml b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_events-events_listing_block.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8409fbd84819910e7743dfe2012d2b1dd1788594
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_events-events_listing_block.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: views_blockuw_view_events-events_listing_block
+block_id: 'views_block:uw_view_events-events_listing_block'
+category: uw_bc_listings
+label: 'Event list'
+weight: -1
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/eventlist.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_news_items-news_items_listing_block.yml b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_news_items-news_items_listing_block.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61b53a9be7b038e366c4a02c9273263d83b17356
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.views_blockuw_view_news_items-news_items_listing_block.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: views_blockuw_view_news_items-news_items_listing_block
+block_id: 'views_block:uw_view_news_items-news_items_listing_block'
+category: uw_bc_listings
+label: 'News item list'
+weight: 1
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/newslist.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_block.webform_block.yml b/config/install/layout_builder_browser.layout_builder_browser_block.webform_block.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a90fe286bb512818d72efe5d126ecae68a3372db
--- /dev/null
+++ b/config/install/layout_builder_browser.layout_builder_browser_block.webform_block.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: webform_block
+block_id: webform_block
+category: uw_bc_webforms
+label: Webform
+weight: 0
+image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/webform.svg
+image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_content.yml b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_content.yml
index 50e40679e908821f5517f30752ed57848148cd85..d409a3d03f05ce94c429e49938945b0a603158ee 100755
--- a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_content.yml
+++ b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_content.yml
@@ -20,11 +20,6 @@ blocks:
     weight: 0
     image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/copytext.svg
     image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_expand_collapse'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/expandcollapse.svg
-    image_alt: ''
   -
     block_id: 'inline_block:uw_cbl_facts_and_figures'
     weight: 0
diff --git a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_external_embeds.yml b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_external_embeds.yml
index 03e03111c6da5884daa22ff3fe8e00dade08a133..f38e76414d394bcf39c5e1a490af83698618ed84 100644
--- a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_external_embeds.yml
+++ b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_external_embeds.yml
@@ -4,39 +4,3 @@ dependencies: {  }
 id: uw_bc_external_embeds
 label: 'External embeds'
 weight: null
-blocks:
-  -
-    block_id: 'inline_block:uw_cbl_facebook'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/facebook.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_instagram'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/instagram.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_remote_video'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/video.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_tableau'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/tableau.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_twitter'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/twitter.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_powerbi'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/powerbi.svg
-    image_alt: ''
-  -
-    block_id: 'inline_block:uw_cbl_google_maps'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/maps_google.svg
-    image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_listings.yml b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_listings.yml
index fa5261c0c2f5320b10b1d3dfb20a600fd6998ff2..4b089a384cf89a1478e8c1b69e4896639d9495ec 100644
--- a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_listings.yml
+++ b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_listings.yml
@@ -4,24 +4,3 @@ dependencies: {  }
 id: uw_bc_listings
 label: Listings
 weight: null
-blocks:
-  -
-    block_id: 'views_block:uw_view_blogs-blogs_listing_block'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/bloglist.svg
-    image_alt: ''
-  -
-    block_id: 'views_block:uw_view_events-events_listing_block'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/eventlist.svg
-    image_alt: ''
-  -
-    block_id: 'views_block:uw_view_news_items-news_items_listing_block'
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/newslist.svg
-    image_alt: ''
-  -
-    block_id: uw_cbl_multi_type_list
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/multitypelist.svg
-    image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_teasers.yml b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_teasers.yml
index 02458cf188ed0d4f117daf609bb5a4db162c5ab7..5d3350eeb942588ddc737064f3b21adf60e81adf 100644
--- a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_teasers.yml
+++ b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_teasers.yml
@@ -4,19 +4,3 @@ dependencies: {  }
 id: uw_bc_teasers
 label: Teasers
 weight: null
-blocks:
-  -
-    block_id: uw_cbl_blog_teaser
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/blogteaser.svg
-    image_alt: ''
-  -
-    block_id: uw_cbl_news_teaser
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/newsteaser.svg
-    image_alt: ''
-  -
-    block_id: uw_cbl_event_teaser
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/eventteaser.svg
-    image_alt: ''
diff --git a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_webforms.yml b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_webforms.yml
index 1ea273fac06822ab3dcf7a0d11bc0fc008fac778..73d11669a6125aabfd5c06883e2a5b280ec29cfb 100644
--- a/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_webforms.yml
+++ b/config/install/layout_builder_browser.layout_builder_browser_blockcat.uw_bc_webforms.yml
@@ -4,9 +4,3 @@ dependencies: {  }
 id: uw_bc_webforms
 label: Webforms
 weight: null
-blocks:
-  -
-    block_id: webform_block
-    weight: 0
-    image_path: /profiles/uw_base_profile/themes/uw_fdsu_theme_resp/images/layout_builder_browser/webform.svg
-    image_alt: ''
diff --git a/config/install/realname.settings.yml b/config/install/realname.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5ea4e42de93fdc157f89bc1fbaa7e946e85110fc
--- /dev/null
+++ b/config/install/realname.settings.yml
@@ -0,0 +1 @@
+pattern: '[user:field_uw_first_name] [user:field_uw_last_name]'
diff --git a/config/install/user.role.authenticated.yml b/config/install/user.role.authenticated.yml
index c4bf03a464f402b6ef22db28d8d4057c5425f8a5..fbc3f939737763f7c27c80aaa246f51807b077ac 100644
--- a/config/install/user.role.authenticated.yml
+++ b/config/install/user.role.authenticated.yml
@@ -15,6 +15,9 @@ permissions:
   - 'skip CAPTCHA'
   - 'use text format uw_tf_basic'
   - 'use text format uw_tf_standard'
+  - 'userprotect.account.edit'
+  - 'userprotect.mail.edit'
+  - 'userprotect.pass.edit'
   - 'view media'
   - 'view paragraph content uw_para_call_to_action'
   - 'view paragraph content uw_para_call_to_action_text'
diff --git a/config/install/user.role.uw_role_site_owner.yml b/config/install/user.role.uw_role_site_owner.yml
index 7a6e21c7e7283285d99aa399b87c0a1ba9d13953..9c4e9499e1bff363ec4cf667045cab81a5d4ed51 100644
--- a/config/install/user.role.uw_role_site_owner.yml
+++ b/config/install/user.role.uw_role_site_owner.yml
@@ -17,7 +17,9 @@ permissions:
   - 'administer main menu items'
   - 'administer role expire'
   - 'administer shortcuts'
+  - 'administer users'
   - 'administer uw-menu-audience-menu menu items'
+  - 'assign roles'
   - 'can override my_dashboard dashboard'
   - 'can view my_dashboard dashboard'
   - 'create and edit custom blocks'
diff --git a/config/install/userprotect.rule.uw_protect_authenticated_user.yml b/config/install/userprotect.rule.uw_protect_authenticated_user.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bc435657823c39791e5a73ee46ce95a966d19a56
--- /dev/null
+++ b/config/install/userprotect.rule.uw_protect_authenticated_user.yml
@@ -0,0 +1,20 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - user.role.authenticated
+  module:
+    - user
+name: uw_protect_authenticated_user
+label: 'Authenticated user'
+protectedEntityTypeId: user_role
+protectedEntityId: authenticated
+protections:
+  user_delete:
+    id: user_delete
+    provider: userprotect
+    status: true
+  user_status:
+    id: user_status
+    provider: userprotect
+    status: true
diff --git a/src/Form/UwContentModerationForm.php b/src/Form/UwContentModerationForm.php
index e1c03a08b4c77627d9eff8c4d3fbc06f64a3d15c..b6613f17ee84e993b042d0f9e1c9ecdd34fea2cd 100644
--- a/src/Form/UwContentModerationForm.php
+++ b/src/Form/UwContentModerationForm.php
@@ -64,14 +64,36 @@ class UwContentModerationForm extends ConfirmFormBase {
   /**
    * {@inheritdoc}
    */
-  public function buildForm(array $form, FormStateInterface $form_state, $nid = NULL, $vid = NULL) {
+  public function buildForm(array $form, FormStateInterface $form_state, $nid = NULL, $vid = NULL, $status = NULL) {
 
-    // Set the node and version ids.
+    // Set the node, version id and status.
     $this->nid = $nid;
     $this->vid = $vid;
-
-    // Return the form from the parent (confirm form).
-    return parent::buildForm($form, $form_state);
+    $this->status = $status;
+
+    // Get the form from the parent, we need this to ensure
+    // that we have all the components (like confirm/cancel)
+    // load with this form as well.
+    $form = parent::buildForm($form, $form_state);
+
+    // Unset the description, we want to replace it with our
+    // description based on the node status.
+    unset($form['description']);
+
+    // Set the description form element.
+    $form['description'] = [
+      '#type' => 'markup',
+    ];
+
+    // Set the description based on the node status.
+    if ($this->status) {
+      $form['description']['#markup'] = $this->t('Are you sure that you want to unpublish the live revision of this content?');
+    }
+    else {
+      $form['description']['#markup'] = $this->t('Are you sure that you want to publish the current revision of this content?');
+    }
+
+    return $form;
   }
 
   /**
@@ -79,6 +101,58 @@ class UwContentModerationForm extends ConfirmFormBase {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
 
+    // If we are unpublishing, load the latest revision node.
+    if ($this->status) {
+
+      // Load the node with the nid.
+      $node = $this->entityTypeManager->getStorage('node')->load($this->nid);
+
+      // Get all the revisions for the current node.
+      $revision_ids = $this->entityTypeManager->getStorage('node')->revisionIds($node);
+
+      // Get the node object with that latest revision, which is the end
+      // of the revision ids list.
+      $node = $this->entityTypeManager->getStorage('node')->loadRevision(end($revision_ids));
+    }
+
+    // If we are publishing, load the node with the nid.
+    else {
+
+      // Get the node object.
+      $node = $this->entityTypeManager->getStorage('node')->loadRevision($this->vid);
+    }
+
+    // If the node is currently published, then we want to
+    // unpublish this content, which will mean to move from
+    // two statesL upublish and draft.
+    if ($this->status) {
+
+      // First set the node to unpublished, we need to do this
+      // because moving it to just draft will not cause it to
+      // become unpublished.
+      $node->set('moderation_state', 'uw_wf_unpublished');
+
+      // Save the node to move it to unpublished.
+      $saved_status = $node->save();
+
+      // Now set the node moderation state to draft.
+      $node->set('moderation_state', 'draft');
+
+      // Save the node with the moderation state at draft.
+      $saved_status = $node->save();
+    }
+
+    // If the node is already unpublished, we want to move to the
+    // published moderation state.
+    else {
+
+      // Set the moderation state to publish.
+      $node->set('moderation_state', 'published');
+
+      // Save the node with the moderation state at published.
+      $saved_status = $node->save();
+    }
+
     // Set the options for the URL.
     $options = ['absolute' => TRUE];
 
@@ -88,8 +162,30 @@ class UwContentModerationForm extends ConfirmFormBase {
     // Adding the redirect back to the node.
     $form_state->setRedirectUrl($url);
 
-    // Set the message that the permissions have been saved.
-    $this->messenger()->addStatus($this->t('There is still work to be done to unpublish, but we made it here.'));
+    // If the saved status is SAVED_UPDATED (2), means that we successfully
+    // changed the moderation state so set the message appropriately.
+    if ($saved_status == SAVED_UPDATED) {
+
+      if ($this->status) {
+        $this->messenger()->addStatus($this->t('You have successfully unpublished this content.'));
+      }
+      else {
+        $this->messenger()->addStatus($this->t('You have successfully published this content.'));
+      }
+    }
+
+    // If the saved status is anything else, there was an
+    // error trying to change the moderation state so set
+    // the message appropriately.
+    else {
+
+      if ($this->status) {
+        $this->messenger()->addError($this->t('There was an error trying to unpublish this content.'));
+      }
+      else {
+        $this->messenger()->addError($this->t('There was an error trying to publish this content.'));
+      }
+    }
   }
 
   /**
@@ -103,8 +199,17 @@ class UwContentModerationForm extends ConfirmFormBase {
     // Get the node object.
     $node = $this->entityTypeManager->getStorage('node')->load($this->nid);
 
-    // Return the question to see if they want to publish the node.
-    return $this->t('Are you sure you want to unpublish %node_title?', ['%node_title' => $node->getTitle()]);
+    // Set the question (title of page) based on node status.
+    if ($this->status) {
+
+      // Return the question to see if they want to publish the node.
+      return $this->t('Unpublish %node_title?', ['%node_title' => $node->getTitle()]);
+    }
+    else {
+
+      // Return the question to see if they want to publish the node.
+      return $this->t('Publish %node_title?', ['%node_title' => $node->getTitle()]);
+    }
   }
 
   /**
diff --git a/uw_cfg_common.info.yml b/uw_cfg_common.info.yml
index 34af4ef5b9c882848d427914c9bd3585d1f76bbb..0838923fad441a21beddb793e83bd8ae295778e3 100644
--- a/uw_cfg_common.info.yml
+++ b/uw_cfg_common.info.yml
@@ -3,30 +3,36 @@ description: 'Configuration for all common WCMS'
 type: module
 core_version_requirement: '^8.7.7 || ^9'
 dependencies:
-  - block_list_override
-  - captcha
-  - ckeditor
-  - config_views
-  - core_event_dispatcher
-  - editor
-  - features
-  - field
-  - field_event_dispatcher
-  - filter
-  - hcaptcha
-  - hook_event_dispatcher
-  - language
-  - layout_builder
-  - layout_builder_browser
-  - layout_builder_modal
-  - layout_builder_restrictions
-  - layout_builder_styles
-  - linkit
-  - media
-  - metatag
-  - node
-  - pathauto
-  - preprocess_event_dispatcher
-  - taxonomy
-  - user
-  - views
+  - drupal:block_content
+  - drupal:block_list_override
+  - drupal:captcha
+  - drupal:ckeditor
+  - drupal:config_views
+  - drupal:core_event_dispatcher
+  - drupal:ctools
+  - drupal:editor
+  - drupal:features
+  - drupal:field
+  - drupal:field_event_dispatcher
+  - drupal:filter
+  - drupal:hcaptcha
+  - drupal:hook_event_dispatcher
+  - drupal:language
+  - drupal:layout_builder
+  - drupal:layout_builder_browser
+  - drupal:layout_builder_modal
+  - drupal:layout_builder_restrictions
+  - drupal:layout_builder_styles
+  - drupal:linkit
+  - drupal:media
+  - drupal:metatag
+  - drupal:node
+  - drupal:path
+  - drupal:pathauto
+  - drupal:preprocess_event_dispatcher
+  - drupal:realname
+  - drupal:taxonomy
+  - drupal:text
+  - drupal:user
+  - drupal:userprotect
+  - drupal:views
diff --git a/uw_cfg_common.links.menu.yml b/uw_cfg_common.links.menu.yml
index f342ed2610193c6ce29df3bf342fd8889a8fa607..826ca1e60def2dca4ad32b572a2d00a92e6cd3f0 100644
--- a/uw_cfg_common.links.menu.yml
+++ b/uw_cfg_common.links.menu.yml
@@ -41,7 +41,7 @@ uw_global_footer.accessibility:
   weight: 2
 
 uw_global_footer.media:
-  title: 'Media'
+  title: 'News'
   menu_name: uw-menu-global-footer
   url: https://uwaterloo.ca/news/
   weight: 3
@@ -116,313 +116,199 @@ uw_content_management.content_types:
   title: 'Content types'
   menu_name: uw-menu-content-management
   route_name: entity.node_type.collection
-  weight: 10
+  weight: 0
 
 uw_content_management.content_types.blog_post:
   title: 'Blog post'
   parent: uw_content_management.content_types
   url: internal:/node/add/uw_ct_blog
-  weight: 10
+  weight: 0
+
+uw_content_management.content_types.catalog_item.add_blog_tag:
+  title: 'Add blog tag'
+  parent: uw_content_management.content_types.blog_post
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_blog_tags/add
+  weight: 0
 
-uw_content_management.content_types.blog_post.blog_settings:
-  title: 'Blog page settings'
+uw_content_management.content_types.catalog_item.list_blog_tag:
+  title: 'List blog tags'
   parent: uw_content_management.content_types.blog_post
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_blog_tags/overview
+  weight: 0
 
 uw_content_management.content_types.catalog_item:
   title: 'Catalog item'
   parent: uw_content_management.content_types
-  url: internal:/node/add
-  weight: 10
-
-uw_content_management.content_types.catalog_item.catalog_settings:
-  title: 'Catalog settings'
-  parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 10
+  url: internal:/node/add/uw_ct_catalog_item
+  weight: 0
 
 uw_content_management.content_types.catalog_item.add_catalog:
   title: 'Add catalog'
   parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 20
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_catalogs/add
+  weight: 0
 
 uw_content_management.content_types.catalog_item.list_catalogs:
   title: 'List catalogs'
   parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 30
-
-uw_content_management.content_types.catalog_item.merge_catalogs:
-  title: 'Merge catalogs'
-  parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 40
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_catalogs/overview
+  weight: 0
 
 uw_content_management.content_types.catalog_item.add_catalog_category:
   title: 'Add catalog category'
   parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 50
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_catalog_categories/add
+  weight: 0
 
 uw_content_management.content_types.catalog_item.list_catalog_categories:
   title: 'List catalog categories'
   parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 60
-
-uw_content_management.content_types.catalog_item.merge_catalog_categories:
-  title: 'Merge catalog categories'
-  parent: uw_content_management.content_types.catalog_item
-  url: internal:/node/add
-  weight: 70
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_catalog_categories/overview
+  weight: 0
 
 uw_content_management.content_types.contact:
   title: 'Contact'
   parent: uw_content_management.content_types
-  url: internal:/node/add
-  weight: 20
+  url: internal:/node/add/uw_ct_contact
+  weight: 0
 
-uw_content_management.content_types.contact.rearrange_contacts:
-  title: 'Rearrange contacts'
+uw_content_management.content_types.contact:.add_contact_tag:
+  title: 'Add contact tag'
   parent: uw_content_management.content_types.contact
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_contact_group/add
+  weight: 0
+
+uw_content_management.content_types.contact.list_contact_tag:
+  title: 'List contact tags'
+  parent: uw_content_management.content_types.contact
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_contact_group/overview
+  weight: 0
 
 uw_content_management.content_types.event:
   title: 'Event'
   parent: uw_content_management.content_types
   url: internal:/node/add/uw_ct_event
-  weight: 30
+  weight: 0
+
+uw_content_management.content_types.event.add_event_tag:
+  title: 'Add event tag'
+  parent: uw_content_management.content_types.event
+  url: internal:/admin/structure/taxonomy/manage/uw_tax_event_tags/add
+  weight: 0
+
+uw_content_management.content_types.event.list_event_tags:
+  title: 'List event tags'
+  parent: uw_content_management.content_types.event
+  url: internal:/admin/structure/taxonomy/manage/uw_tax_event_tags/overview
+  weight: 0
+
+uw_content_management.content_types.event.add_event_type:
+  title: 'Add event type'
+  parent: uw_content_management.content_types.event
+  url: internal:/admin/structure/taxonomy/manage/uw_tax_event_type/add
+  weight: 0
+
+uw_content_management.content_types.event.list_event_types:
+  title: 'List event types'
+  parent: uw_content_management.content_types.event
+  url: internal:/admin/structure/taxonomy/manage/uw_tax_event_type/overview
+  weight: 0
 
 uw_content_management.content_types.news_item:
   title: 'News item'
   parent: uw_content_management.content_types
   url: internal:/node/add/uw_ct_news_item
-  weight: 40
+  weight: 0
+
+uw_content_management.content_types.news_item.add_news_tag:
+  title: 'Add news tag'
+  parent: uw_content_management.content_types.news_item
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_news_tags/add
+  weight: 0
+
+uw_content_management.content_types.news_item.list_news_tags:
+  title: 'List news tags'
+  parent: uw_content_management.content_types.news_item
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_news_tags/overview
+  weight: 0
 
 uw_content_management.content_types.site_footer:
   title: 'Site footer'
   parent: uw_content_management.content_types
   url: internal:/node/add/uw_ct_site_footer
-  weight: 30
+  weight: 0
 
 uw_content_management.content_types.web_page:
   title: 'Web page'
   parent: uw_content_management.content_types
   url: internal:/node/add/uw_ct_web_page
-  weight: 40
+  weight: 0
 
 uw_content_management.forms:
   title: 'Forms'
   menu_name: uw-menu-content-management
   url: internal:/admin/structure/webform
-  weight: 50
+  weight: 0
 
 uw_content_management.forms.form:
   title: 'Form'
   parent: uw_content_management.forms
   url: internal:/admin/structure/webform/add
-  weight: 10
+  weight: 0
 
 uw_content_management.forms.form.manage_submissions:
   title: 'Manage submissions'
   parent: uw_content_management.forms.form
   url: internal:/admin/structure/webform/submissions/manage
-  weight: 10
-
-uw_content_management.reusable_content:
-  title: 'Reusable content'
-  menu_name: uw-menu-content-management
-  route_name: entity.node_type.collection
-  weight: 40
-
-uw_content_management.reusable_content.blockquote:
-  title: 'Blockquote'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_blockquote
-  weight: 10
-
-uw_content_management.reusable_content.call_to_action:
-  title: 'Call to action'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_call_to_action
-  weight: 15
-
-uw_content_management.reusable_content.copy_text:
-  title: 'Copy text'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_copy_text
-  weight: 20
-
-uw_content_management.reusable_content.expand_collapse:
-  title: 'Expand / Collapse'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_expand_collapse
-  weight: 25
-
-uw_content_management.reusable_content.facebook:
-  title: 'Facebook'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_facebook
-  weight: 30
-
-uw_content_management.reusable_content.facts_and_figures:
-  title: 'Facts and figures'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_facts_and_figures
-  weight: 35
-
-uw_content_management.reusable_content.image:
-  title: 'Full width image'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_image
-  weight: 40
-
-uw_content_management.reusable_content.instagram:
-  title: 'Instagram'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_instagram
-  weight: 45
-
-uw_content_management.reusable_content.mailmain:
-  title: 'Mailman subscription'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_mailman
-  weight: 50
-
-uw_content_management.reusable_content.remove_video:
-  title: 'Remote video'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_remote_video
-  weight: 55
-
-uw_content_management.reusable_content.tableau:
-  title: 'Tableau visualization'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_tableau
-  weight: 60
-
-uw_content_management.reusable_content.twitter:
-  title: 'Twitter'
-  parent: uw_content_management.reusable_content
-  url: internal:/block/add/uw_cbl_twitter
-  weight: 65
+  weight: 0
 
 uw_content_management.global_vocabularies:
   title: 'Global vocabularies'
   menu_name: uw-menu-content-management
-  route_name: entity.node_type.collection
-  weight: 50
+  url: internal:/admin/structure/taxonomy
+  weight: 0
 
 uw_content_management.global_vocabularies.audience:
   title: 'Audience'
   parent: uw_content_management.global_vocabularies
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_audience
+  weight: 0
 
-uw_content_management.global_vocabularies.audience.list_terms:
-  title: 'List terms'
+uw_content_management.global_vocabularies.audience.add_term:
+  title: 'Add term'
   parent: uw_content_management.global_vocabularies.audience
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_audience/add
+  weight: 0
 
-uw_content_management.global_vocabularies.audience.merge_terms:
-  title: 'Merge terms'
+uw_content_management.global_vocabularies.audience.list_terms:
+  title: 'List terms'
   parent: uw_content_management.global_vocabularies.audience
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/structure/taxonomy/manage/uw_vocab_audience/overview
+  weight: 0
 
-uw_site_management.google_universal_analytics:
-  title: 'Google Universal Analytics'
+uw_site_management.content_access:
+  title: 'Content access'
   menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 5
-
-uw_site_management.home_page_banner_settings:
-  title: 'Home page banner settings'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 10
+  url: internal:/admin/content-access
+  weight: 0
 
 uw_site_management.menus:
   title: 'Menus'
   menu_name: uw-menu-site-management
   route_name: entity.menu.collection
-  weight: 15
-
-uw_site_management.microsoft_teams_options:
-  title: 'Microsoft Teams options'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 20
-
-uw_site_management.open_authentication:
-  title: 'Open authentication'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 25
-
-uw_site_management.path_review_report:
-  title: 'Path review report'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 30
-
-uw_site_management.project_settings:
-  title: 'Project settings'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 35
-
-uw_site_management.redirects:
-  title: 'Redirects'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 40
-
-uw_site_management.service_ist_settings:
-  title: 'Service IST settings'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 45
-
-uw_site_management.service_settings:
-  title: 'Service settings'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 50
-
-uw_site_management.shortcuts:
-  title: 'Shortcuts'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 55
-
-uw_site_management.slack_options:
-  title: 'Slack options'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 60
-
-uw_site_management.slack_mattermost_options:
-  title: 'Slack/Mattermost options'
-  menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 65
+  weight: 0
 
 uw_site_management.submit_request:
   title: 'Submit request'
   menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 70
+  url: mailto:rt-ist-wcms@rt.uwaterloo.ca
+  weight: 0
 
 uw_site_management.wcms_how_to_documents:
   title: 'WCMS how-to documents'
   menu_name: uw-menu-site-management
-  url: internal:/node/add
-  weight: 75
+  url: https://uwaterloo.ca/web-resources/wcms-users/training-and-support/wcms-how-documents
+  weight: 0
 
 uw_main_menu.blog:
   title: 'Blog'
diff --git a/uw_cfg_common.module b/uw_cfg_common.module
index 909e8d4f30526d8b5aa2ee407acdf2b3adbfe5aa..f62c18c123c6335c43a1cb9cb855b91cd66677a4 100644
--- a/uw_cfg_common.module
+++ b/uw_cfg_common.module
@@ -5,10 +5,31 @@
  * Module file.
  */
 
+use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\webform\WebformInterface;
 use Drupal\webform\WebformSubmissionStorageInterface;
 
+/**
+ * Implements hook_entity_presave().
+ */
+function uw_cfg_common_entity_presave(EntityInterface $entity) {
+
+  // Check if we are on a menu link.
+  if ($entity->getEntityTypeId() == 'menu_link_content') {
+
+    // Check that we are on a Information For (audience) link.
+    if ($entity->menu_name->value == 'uw-menu-audience-menu') {
+
+      // Invalid all the menu caching.
+      \Drupal::cache('menu')->invalidateAll();
+
+      // Rebuild all the menus.
+      \Drupal::service('plugin.manager.menu.link')->rebuild();
+    }
+  }
+}
+
 /**
  * Implements hook_form_FORM_ID_alter().
  *
@@ -186,6 +207,32 @@ function uw_cfg_common_preprocess_node(&$variables) {
   // an array to future proof, if there are more pages later.
   $paths_for_content_moderation = ['latest'];
 
+  // ISTWCMS-4493: adding class if section has full width.
+  // If there is a sidebar on the node, check all sections for full width.
+  if (isset($variables['sidebar'])) {
+
+    // Get the layouts from the node.
+    $layouts = $variables['node']->layout_builder__layout->getValue();
+
+    // Step through each of the layouts and check for full width.
+    foreach ($layouts as $layout) {
+
+      // Get the layout settings from the section.
+      $settings = $layout['section']->getLayoutSettings();
+
+      // If the layout builder style is set to full width, then set
+      // the classes variable for the node and exit the loop.
+      if ($settings['layout_builder_styles_style'] == "uw_lbs_full_width") {
+
+        // Add a class to the node for full width on a section.
+        $variables['attributes']['class'][] = 'uw-section-has-full-width';
+
+        // Break out of the loop to save computational time.
+        break;
+      }
+    }
+  }
+
   // Check if we are to add the content moderation place.
   if (in_array(end($path), $paths_for_content_moderation)) {
 
diff --git a/uw_cfg_common.routing.yml b/uw_cfg_common.routing.yml
index c22fe91f9ccaa3d712f7c8f48cd618cc2e4dc70f..cd86dba516fdd844199f59060c7fa1140128fc75 100644
--- a/uw_cfg_common.routing.yml
+++ b/uw_cfg_common.routing.yml
@@ -6,9 +6,9 @@ uw_contact_access.form:
   requirements:
     _permission: 'access content access form'
 uw_content_moderation.form:
-  path: '/admin/uw-content-moderation/{nid}/{vid}'
+  path: '/admin/uw-content-moderation/{nid}/{vid}/{status}'
   defaults:
     _title: 'Content moderation'
     _form: '\Drupal\uw_cfg_common\Form\UwContentModerationForm'
   requirements:
-    _permission: 'access content'
\ No newline at end of file
+    _permission: 'access content'