diff --git a/markup.module b/markup.module
index 8ef750b..477c75a 100644
--- a/markup.module
+++ b/markup.module
@@ -26,13 +26,49 @@ function markup_field_info() {
 function markup_field_formatter_info() {
   return array(
     'markup_default' => array(
-      'label' => t('Output raw markup'),
+      'label' => t('No markup (hidden)'),
+      'field types' => array('markup'),
+    ),
+    'markup_view' => array(
+      'label' => t('Raw markup'),
+      'description' => t('Displays the markup while viewing the entity (in addition to the edit form).'),
       'field types' => array('markup'),
     ),
   );
 }
 
 /**
+ * Implementation of hook_field_formatter_prepare_view().
+ */
+function markup_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) {
+  if ($field['type'] != 'markup') {
+    return;
+  }
+
+  //set item value to markup for all to-be-displayed markup.
+  foreach ($items as $eid => $item) {
+    if ($instances[$eid]['display']['default']['type'] == 'markup_view') {
+      dpm($field);
+      $markup = $field['settings']['markup'];
+      
+      //check if markup is using a text format
+      if (is_array($markup) && isset($markup['value'])) {
+
+        $format = $markup['format'] ? $markup['format'] : FALSE;
+
+        if ($format) {
+          //apply input filters to markup
+          $items[$eid][0]['markup'] = check_markup($markup['value'], $format);
+        }
+      }
+      else {
+        $items[$eid][0]['markup'] = $markup;
+      }
+    }
+  }
+}
+
+/**
  * Implementation of hook_field_formatter_view().
  */
 function markup_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
