diff --git a/module_builder.module b/module_builder.module
index b400664d76c2b7369b4d29083621ff30bae7c6ae..0cfd2bdd0d13a5d1dc8bb4a146c5b2a4f894d192 100644
--- a/module_builder.module
+++ b/module_builder.module
@@ -82,7 +82,7 @@ function module_builder_entity_type_build(array &$entity_types) {
       $entity_type->setFormClass('misc', ModuleMiscForm::class);
     }
 
-    $canonical_template = $entity_type->getLinkTemplate('canonical');
+    $canonical_template = $entity_type->getLinkTemplate('edit-form');
     foreach ($form_operations as $form_op) {
       // Allow the entity type to specify a form class.
       if (empty($entity_type->getFormClass($form_op))) {
diff --git a/src/Entity/ModuleBuilderModule.php b/src/Entity/ModuleBuilderModule.php
index 6527249c2641b4459adbd028d6bbc1d7fbc48626..d26ea71b12e967a54f9a8adaa9de616d338d1be9 100644
--- a/src/Entity/ModuleBuilderModule.php
+++ b/src/Entity/ModuleBuilderModule.php
@@ -40,7 +40,6 @@ use Drupal\Core\Config\Entity\ConfigEntityBase;
  *     "data",
  *   },
  *   links = {
- *     "canonical" = "/admin/config/development/module_builder/manage/{module_builder_module}",
  *     "collection" = "/admin/config/development/module_builder",
  *     "add-form" = "/admin/config/development/module_builder/add",
  *     "edit-form" = "/admin/config/development/module_builder/manage/{module_builder_module}",
diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php
index 21c8dbde46a026b9f5497c9fa166675c8939cc71..4005784df792076e4782fae870f8fbef7b301003 100644
--- a/src/Form/ComponentSectionForm.php
+++ b/src/Form/ComponentSectionForm.php
@@ -114,7 +114,7 @@ class ComponentSectionForm extends ComponentFormBase {
     $form[$component_type]['#tree'] = TRUE;
 
     foreach ($component_properties_to_use as $property_name) {
-      $this->buildFormElement($form[$component_type], $form_state, $component_data->{$property_name});
+      $this->buildDataItemFormElement($form[$component_type], $form_state, $component_data->{$property_name});
     }
 
     // Put the data back into the form state, as the building of the form
@@ -163,7 +163,7 @@ class ComponentSectionForm extends ComponentFormBase {
    * @param \MutableTypedData\Data\DataItem $data
    *   The data item.
    */
-  protected function buildFormElement(&$form, FormStateInterface $form_state, DataItem $data) {
+  protected function buildDataItemFormElement(&$form, FormStateInterface $form_state, DataItem $data): void {
     $element = [];
 
     // Determine whether to handle multiple data as a single element or a set
@@ -184,15 +184,15 @@ class ComponentSectionForm extends ComponentFormBase {
     // Case 1: multiple deltas each handled as a separate form element, within
     // a details wrapper.
     if ($use_multiple_deltas) {
-      $element = $this->buildMultipleDeltaFormElement($form, $form_state, $data);
+      $element = $this->buildMultipleDeltaFormElement($form_state, $data);
     }
     // Case 2: complex form element.
     elseif ($data->getDefinition()->isComplex()) {
-      $element = $this->buildComplexFormElement($form, $form_state, $data);
+      $element = $this->buildComplexFormElement($form_state, $data);
     }
     // Case 3: single form element.
     else {
-      $element = $this->buildSingleFormElement($form, $form_state, $data);
+      $element = $this->buildSingleFormElement($form_state, $data);
     }
 
     // Special case for hooks in a test module, as otherwise they're totally
@@ -228,12 +228,12 @@ class ComponentSectionForm extends ComponentFormBase {
   /**
    * Builds a form element for data that uses a single element.
    *
-   * Helper for buildFormElement().
+   * Helper for buildDataItemFormElement().
    *
-   * Note that buildFormElement() is responsible for some attributes of the
+   * Note that buildDataItemFormElement() is responsible for some attributes of the
    * element.
    */
-  protected function buildSingleFormElement(&$form, FormStateInterface $form_state, DataItem $data) {
+  protected function buildSingleFormElement(FormStateInterface $form_state, DataItem $data): array {
     $element = [];
 
     // Case 3A: element with options.
@@ -356,7 +356,7 @@ class ComponentSectionForm extends ComponentFormBase {
       $element += [
         '#type' => 'textarea',
         '#title' => $data->getLabel(),
-        '#description' => $data->getDescription(),
+        '#description' => $data->getDescription() . ' ' . t("Enter one item per line."),
         '#default_value' => implode("\n", $data->export()),
       ];
     }
@@ -378,6 +378,10 @@ class ComponentSectionForm extends ComponentFormBase {
       $element['#required'] = TRUE;
     }
 
+    if ($data->getDefault()) {
+      $element['#description'] .= ' ' . t("Leave blank for a default value.");
+    }
+
     $element['#attributes']['data-typed-data-address'] = $data->getAddress();
 
     // dsm($data->getDefault());
@@ -418,12 +422,12 @@ class ComponentSectionForm extends ComponentFormBase {
   /**
    * Builds a multi-valued form element.
    *
-   * Helper for buildFormElement().
+   * Helper for buildDataItemFormElement().
    *
-   * Note that buildFormElement() is responsible for some attributes of the
+   * Note that buildDataItemFormElement() is responsible for some attributes of the
    * element.
    */
-  protected function buildMultipleDeltaFormElement(&$form, FormStateInterface $form_state, DataItem $data) {
+  protected function buildMultipleDeltaFormElement(FormStateInterface $form_state, DataItem $data): array {
     // Set up a wrapper for AJAX.
     $wrapper_id = Html::getId($data->getAddress() . '-add-more-wrapper');
 
@@ -439,7 +443,7 @@ class ComponentSectionForm extends ComponentFormBase {
     ];
 
     foreach ($data as $delta => $delta_item) {
-      $this->buildFormElement($element, $form_state, $delta_item);
+      $this->buildDataItemFormElement($element, $form_state, $delta_item);
 
       // Set the label on each delta item to differentiate it from the overall
       // element label.
@@ -522,12 +526,12 @@ class ComponentSectionForm extends ComponentFormBase {
   /**
    * Builds a form element with multiple child elements.
    *
-   * Helper for buildFormElement().
+   * Helper for buildDataItemFormElement().
    *
-   * Note that buildFormElement() is responsible for some attributes of the
+   * Note that buildDataItemFormElement() is responsible for some attributes of the
    * element.
    */
-  protected function buildComplexFormElement(&$form, FormStateInterface $form_state, DataItem $data) {
+  protected function buildComplexFormElement(FormStateInterface $form_state, DataItem $data): array {
     // Set up a wrapper for AJAX.
     $wrapper_id = Html::getId($data->getAddress() . '-complex-wrapper');
 
@@ -572,7 +576,7 @@ class ComponentSectionForm extends ComponentFormBase {
     }
 
     foreach ($data as $data_item) {
-      $this->buildFormElement($element, $form_state, $data_item);
+      $this->buildDataItemFormElement($element, $form_state, $data_item);
     }
 
     if (!$data->isRequired() && !$data->isEmpty() && !$data->isDelta()) {
diff --git a/src/Form/ModuleHooksForm.php b/src/Form/ModuleHooksForm.php
index 9022991cb961dcdd5b5c468c36078c781fc46b63..801d94ca342139258495e13c991eebc406a7662c 100644
--- a/src/Form/ModuleHooksForm.php
+++ b/src/Form/ModuleHooksForm.php
@@ -36,7 +36,7 @@ class ModuleHooksForm extends ComponentSectionForm {
     $entity_component_data = $this->getComponentDataObject();
 
     if ($entity_component_data->hasProperty('hook_implementation_type')) {
-      $this->buildFormElement($form, $form_state, $entity_component_data->hook_implementation_type);
+      $this->buildDataItemFormElement($form, $form_state, $entity_component_data->hook_implementation_type);
     }
 
     $form['filter'] = [