diff --git a/core/modules/contact/lib/Drupal/contact/CategoryFormController.php b/core/modules/contact/lib/Drupal/contact/CategoryFormController.php
index 50b5203..24b4d8f 100644
--- a/core/modules/contact/lib/Drupal/contact/CategoryFormController.php
+++ b/core/modules/contact/lib/Drupal/contact/CategoryFormController.php
@@ -42,20 +42,20 @@ public function form(array $form, array &$form_state) {
     $form['recipients'] = array(
       '#type' => 'textarea',
       '#title' => t('Recipients'),
-      '#default_value' => implode(', ', $category->recipients),
+      '#default_value' => implode(', ', $category->getRecipients()),
       '#description' => t("Example: 'webmaster@example.com' or 'sales@example.com,support@example.com' . To specify multiple recipients, separate each e-mail address with a comma."),
       '#required' => TRUE,
     );
     $form['reply'] = array(
       '#type' => 'textarea',
       '#title' => t('Auto-reply'),
-      '#default_value' => $category->reply,
+      '#default_value' => $category->getReply(),
       '#description' => t('Optional auto-reply. Leave empty if you do not want to send the user an auto-reply message.'),
     );
     $form['weight'] = array(
       '#type' => 'weight',
       '#title' => t('Weight'),
-      '#default_value' => $category->weight,
+      '#default_value' => $category->getWeight(),
       '#description' => t('When listing categories, those with lighter (smaller) weights get listed before categories with heavier (larger) weights. Categories with equal weights are sorted alphabetically.'),
     );
     $form['selected'] = array(
diff --git a/core/modules/contact/lib/Drupal/contact/CategoryInterface.php b/core/modules/contact/lib/Drupal/contact/CategoryInterface.php
index 0f3dd5b..3c2ba50 100644
--- a/core/modules/contact/lib/Drupal/contact/CategoryInterface.php
+++ b/core/modules/contact/lib/Drupal/contact/CategoryInterface.php
@@ -14,4 +14,79 @@
  */
 interface CategoryInterface extends ConfigEntityInterface {
 
-}
+  /**
+   * Returns the category label.
+   *
+   * @return string
+   *   The category label.
+   */
+  public function getLabel();
+
+  /**
+   * Returns list of recipient e-mail addresses.
+   *
+   * @return array
+   *   List of recipient e-mail addresses.
+   */
+  public function getRecipients();
+
+  /**
+   * Returns an auto-reply message to send to the message author.
+   *
+   * @return string
+   *  An auto-reply message
+   */
+  public function getReply();
+
+  /**
+   * Returns the weight of this category (used for sorting).
+   *
+   * @return int
+   *   The weight of this category.
+   */
+  public function getWeight();
+
+  /**
+   * Sets the category label.
+   *
+   * @param string $label
+   *   The desired label.
+   *
+   * @return \Drupal\Core\Config\Entity\ConfigEntityInterface
+   *   The class instance this method is called on.
+   */
+  public function setLabel($label);
+
+  /**
+   * Sets list of recipient e-mail addresses.
+   *
+   * @param array $recipients
+   *   The desired list of e-mail addresses of this category.
+   *
+   * @return \Drupal\Core\Config\Entity\ConfigEntityInterface
+   *   The class instance this method is called on.
+   */
+  public function setRecipients($recipients);
+
+  /**
+   * Sets an auto-reply message to send to the message author.
+   *
+   * @param string $reply
+   *   The desired reply.
+   *
+   * @return \Drupal\Core\Config\Entity\ConfigEntityInterface
+   *   The class instance this method is called on.
+   */
+  public function setReply($reply);
+
+  /**
+   * Sets the weight.
+   *
+   * @param int $weight
+   *   The desired weight.
+   *
+   * @return \Drupal\Core\Config\Entity\ConfigEntityInterface
+   *   The class instance this method is called on.
+   */
+  public function setWeight($weight);
+}
\ No newline at end of file
diff --git a/core/modules/contact/lib/Drupal/contact/CategoryListBuilder.php b/core/modules/contact/lib/Drupal/contact/CategoryListBuilder.php
index 37169ff..23089e7 100644
--- a/core/modules/contact/lib/Drupal/contact/CategoryListBuilder.php
+++ b/core/modules/contact/lib/Drupal/contact/CategoryListBuilder.php
@@ -39,7 +39,7 @@ public function buildRow(EntityInterface $entity) {
       $row['selected'] = t('No');
     }
     else {
-      $row['recipients'] = String::checkPlain(implode(', ', $entity->recipients));
+      $row['recipients'] = String::checkPlain(implode(', ', $entity->getRecipients()));
       $default_category = \Drupal::config('contact.settings')->get('default_category');
       $row['selected'] = ($default_category == $entity->id() ? t('Yes') : t('No'));
     }
diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Category.php b/core/modules/contact/lib/Drupal/contact/Entity/Category.php
index 0fc1d7d..c6c5848 100644
--- a/core/modules/contact/lib/Drupal/contact/Entity/Category.php
+++ b/core/modules/contact/lib/Drupal/contact/Entity/Category.php
@@ -9,6 +9,8 @@
 
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\EntityStorageControllerInterface;
+use Drupal\Core\Entity\Annotation\EntityType;
+use Drupal\Core\Annotation\Translation;
 use Drupal\contact\CategoryInterface;
 
 /**
@@ -49,7 +51,7 @@ class Category extends ConfigEntityBase implements CategoryInterface {
   public $id;
 
   /**
-   * The category label.
+   * The human-readable label of this catagory.
    *
    * @var string
    */
@@ -63,18 +65,77 @@ class Category extends ConfigEntityBase implements CategoryInterface {
   public $recipients = array();
 
   /**
-   * An auto-reply message to send to the message author.
+   * An auto-reply message
    *
    * @var string
    */
-  public $reply = '';
+  public $reply;
 
   /**
-   * Weight of this category (used for sorting).
+   * The weight of this category.
    *
    * @var int
    */
-  public $weight = 0;
+  public $weight;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getLabel() {
+    return $this->get('label');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setLabel($label) {
+    return $this->set('label', $label);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRecipients() {
+    return $this->get('recipients');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRecipients($recipients) {
+    $this->set('recipients', $recipients);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getReply() {
+    return $this->get('reply');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setReply($reply) {
+    $this->set('reply', $reply);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getWeight() {
+    return $this->get('weight');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setWeight($weight) {
+    $this->set('weight', $weight);
+    return $this;
+  }
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/CategoryMethodsTest.php b/core/modules/contact/lib/Drupal/contact/Tests/CategoryMethodsTest.php
new file mode 100644
index 0000000..80962cf
--- /dev/null
+++ b/core/modules/contact/lib/Drupal/contact/Tests/CategoryMethodsTest.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\contact\Tests\CategoryMethodsTest.
+ */
+
+namespace Drupal\contact\Tests;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests get and set methods on the category interface.
+ */
+class CategoryMethodsTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('contact');
+
+  /**
+   * Category object.
+   *
+   * @var \Drupal\contact\Entity\Category
+   */
+  private $category;
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Category get and set methods',
+      'description' => 'Test get and set methods on category interface',
+      'group' => 'Contact',
+    );
+  }
+
+  protected function setUp() {
+    parent::setUp();
+    //$this->installConfig(array('contact'));
+    $this->category = entity_create('contact_category', array(
+      'id' => $this->randomName(),
+      'description' => $this->randomName(),
+      'weight' => mt_rand(0, 10),
+    ));
+    $this->category->save();
+  }
+
+  /**
+   * Tests label get and set method.
+   */
+  function testGetLabel() {
+    $label = 'testing';
+    $this->category->setLabel($label);
+    $this->category->save();
+    $this->assertIdentical($this->category->getLabel(), $label, format_string('Test label get method for category %category', array('%category' => $this->category->id())));
+  }
+
+  /**
+   * Tests recipients get and set method.
+   */
+  function testGetRecipients() {
+    $recipients = array('some@example.com');
+    $this->category->setRecipients($recipients);
+    $this->category->save();
+    $this->assertIdentical($this->category->getRecipients(), $recipients, format_string('Test label get method for category %category', array('%category' => $this->category->id())));
+  }
+
+  /**
+   * Tests reply get and set method.
+   */
+  function testGetReply() {
+    $reply = 'some@example.com';
+    $this->category->setReply($reply);
+    $this->category->save();
+    $this->assertIdentical($this->category->getReply(), $reply, format_string('Test label get method for category %category', array('%category' => $this->category->id())));
+  }
+
+  /**
+   * Tests weight get and set method.
+   */
+  function testGetWeight() {
+    $weight = 0;
+    $this->category->setWeight($weight);
+    $this->category->save();
+    $this->assertIdentical($this->category->getWeight(), $weight, format_string('Test label get method for category %category', array('%category' => $this->category->id())));
+  }
+
+}
