diff --git a/exif.css b/exif.css
deleted file mode 100644
index 3af6f15..0000000
--- a/exif.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.field-widget-exif-readonly {
-	display:none;
-}
\ No newline at end of file
diff --git a/exif.module b/exif.module
index 8579ae7..5ea8b10 100755
--- a/exif.module
+++ b/exif.module
@@ -603,13 +603,21 @@ function _exif_get_field_widget_retreive_exif_field_separator_default_value($wid
  * Implementation of hook_field_widget_form().
  */
 function exif_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
-  $form['#attached']['css'][] = drupal_get_path('module', 'exif') . '/exif.css';
-  $element_info = element_info($field['type']);
-  $element += array(
-    '#type' => '#hidden',
-    '#value' => '',
-    '#process' => array_merge(array('exif_field_readonly_widget_process')),
-  );
+  // Most code is from field_extrawidgets_field_widget_form(). (https://drupal.org/project/field_extrawidgets)
+  $entity_type = $element['#entity_type'];
+  if (!isset($form_state[$entity_type])) {
+    return array();
+  }
+  // Clone the entity to avoid messing with it.
+  $cloned_entity = clone $form_state[$entity_type];
+  if (!field_access('view', $field, $entity_type, $cloned_entity)) {
+    // The current user doesn't have access to view this field.
+    return array();
+  }
+  $element += field_view_field($entity_type, $cloned_entity, $field['field_name'], 'default', $langcode);
+  if (!isset($element[0])) {
+    return array();
+  }
   return $element;
 }
 
@@ -701,37 +709,3 @@ function exif_field_widget_error($element, $error, $form, &$form_state) {
 function exif_field_widget_validate($element, &$form_state) {
   //DO NOT CHANGE VALIDATION.
 }
-
-/**
- * callback function call when a element of type exif_readonly is used.
- * handler added to element_info in exif_field_widget_form.
- * handle image metadata widget fields
- * @see exif_field_widget_form
- * @param unknown_type $element
- * @param unknown_type $form_state
- * @param unknown_type $form
- */
-function exif_field_readonly_widget_process($element, &$form_state, $form) {
-  $instance = field_widget_instance($element, $form_state);
-  $settings = $instance['settings'];
-  $widget_settings = $instance['widget']['settings'];
-
-  $element['tid'] = array(
-    '#type' => 'hidden',
-    '#value' => '',
-  );
-  $element['value'] = array(
-    '#type' => 'hidden',
-    '#value' => '',
-  );
-  $element['timezone'] = array(
-    '#type' => 'hidden',
-    '#value' => '',
-  );
-  $element['value2'] = array(
-    '#type' => 'hidden',
-    '#value' => '',
-  );
-  
-  return $element;
-}
