diff --git a/message_notify.module b/message_notify.module
index 41b04b7..987d5f0 100644
--- a/message_notify.module
+++ b/message_notify.module
@@ -70,9 +70,8 @@ function message_notify_plugin_process(&$plugin, $info) {
  * Add a the notifiers view modes.
  */
 function message_notify_entity_info_alter(&$entity_info) {
-  foreach (message_notify_get_notifiers() as $notifier_name => $plugin) {
-    $class = ctools_plugin_load_class('message_notify', 'notifier', $notifier_name, 'class');
-    $view_modes = call_user_func(array($class, 'viewModes'));
+  foreach (message_notify_get_notifiers() as $plugin) {
+    $view_modes = $plugin['view_modes'];
     // Set default values.
     foreach ($view_modes as &$view_mode) {
       $view_mode += array('custom settings' => TRUE);
diff --git a/plugins/notifier/abstract.inc b/plugins/notifier/abstract.inc
index 1713ed4..c1b12c3 100644
--- a/plugins/notifier/abstract.inc
+++ b/plugins/notifier/abstract.inc
@@ -45,13 +45,6 @@ interface MessageNotifierInterface {
    * Determine if user can access notifier.
    */
   public function access();
-
-  /**
-   * Allow notifier to define its own view modes.
-   *
-   * Those view modes are later going to be rendered and sent.
-   */
-  public static function viewModes();
 }
 
 /**
@@ -77,7 +70,7 @@ abstract class MessageNotifierBase implements MessageNotifierInterface {
   public function send() {
     $message = $this->message;
     $output = array();
-    foreach ($this->viewModes() as $view_mode => $value) {
+    foreach ($this->plugin->view_modes as $view_mode => $value) {
       $content = $message->buildContent($view_mode);
       $output[$view_mode] = render($content);
     }
@@ -113,7 +106,7 @@ abstract class MessageNotifierBase implements MessageNotifierInterface {
     if ($options['rendered fields']) {
       // Save the rendered output into matching fields.
       $wrapper = entity_metadata_wrapper('message', $message);
-      foreach ($this->viewModes() as $view_mode => $mode) {
+      foreach ($this->plugin->view_modes as $view_mode => $mode) {
         if (empty($options['rendered fields'][$view_mode])) {
           throw new MessageNotifyException(format_string('The rendered view mode @mode cannot be saved to field, as there is not a matching one.', array('@mode' => $mode['label'])));
         }
@@ -143,9 +136,4 @@ abstract class MessageNotifierBase implements MessageNotifierInterface {
   public function access() {
     return TRUE;
   }
-
-  public static function viewModes() {
-    return array();
-  }
-
 }
diff --git a/plugins/notifier/email/MessageNotifierEmail.class.php b/plugins/notifier/email/MessageNotifierEmail.class.php
index fc29444..36c6e57 100644
--- a/plugins/notifier/email/MessageNotifierEmail.class.php
+++ b/plugins/notifier/email/MessageNotifierEmail.class.php
@@ -5,16 +5,6 @@
  */
 class MessageNotifierEmail extends MessageNotifierBase {
 
-  /**
-   * Add Message notify view mode.
-   */
-  public static function viewModes() {
-    return array(
-      'message_notify_email_subject' => array('label' => t('Notify - Email subject')),
-      'message_notify_email_body' => array('label' => t('Notify - Email body')),
-    );
-  }
-
   public function deliver(array $output = array()) {
     $plugin = $this->plugin;
     $message = $this->message;
diff --git a/plugins/notifier/email/email.inc b/plugins/notifier/email/email.inc
index 8ac91eb..f81d499 100644
--- a/plugins/notifier/email/email.inc
+++ b/plugins/notifier/email/email.inc
@@ -8,4 +8,10 @@ $plugin = array(
     // Override mail. Don't use the email that is assigned to the user.
     'mail' => FALSE,
   ),
+   // A notifier must define its own view modes.
+   // Those view modes are later going to be rendered and sent.
+  'view_modes' => array(
+    'message_notify_email_subject' => array('label' => t('Notify - Email subject')),
+    'message_notify_email_body' => array('label' => t('Notify - Email body')),
+  ),
 );
diff --git a/tests/plugins/notifier/MessageNotifierTest.class.php b/tests/plugins/notifier/MessageNotifierTest.class.php
index 3ed700b..1efc3e1 100644
--- a/tests/plugins/notifier/MessageNotifierTest.class.php
+++ b/tests/plugins/notifier/MessageNotifierTest.class.php
@@ -5,16 +5,6 @@
  */
 class MessageNotifierTest extends MessageNotifierBase {
 
-  /**
-   * Add Message notify view mode.
-   */
-  public static function viewModes() {
-    return array(
-      'foo' => array('label' => t('Foo')),
-      'bar' => array('label' => t('Bar')),
-    );
-  }
-
   public function deliver(array $output = array()) {
     $this->message->output = $output;
     // Return TRUE or FALSE as it was set on the Message.
diff --git a/tests/plugins/notifier/test.inc b/tests/plugins/notifier/test.inc
index 0de31d2..454ca25 100644
--- a/tests/plugins/notifier/test.inc
+++ b/tests/plugins/notifier/test.inc
@@ -4,4 +4,10 @@ $plugin = array(
   'title' => t('Test'),
   'description' => t('Notifier used for testing.'),
   'class' => 'MessageNotifierTest',
+  // A notifier must define its own view modes.
+  // Those view modes are later going to be rendered and sent.
+  'view_modes' => array(
+    'foo' => array('label' => t('Foo')),
+    'bar' => array('label' => t('Bar')),
+  ),
 );
