diff --git a/ds/ds.api.php b/ds/ds.api.php
index fbf3efb..0e0591a 100644
--- a/ds/ds.api.php
+++ b/ds/ds.api.php
@@ -162,16 +162,16 @@ function hook_ds_fields_info($entity_type) {
     // Make sure you use the machine name.
     'ui_limit' => array('article|full', '*|search_index'),
 
-    // file: an optional file in which the function resides.
-    // Only for DS_FIELD_TYPE_FUNCTION.
-    'file' => 'optional_filename',
-
-    // function: only for DS_FIELD_TYPE_FUNCTION.
-    'function' => 'theme_ds_title_field',
-
     // properties: can have different keys.
     'properties' => array(
 
+      // file: an optional file in which the function resides.
+      // Only for DS_FIELD_TYPE_FUNCTION.
+      'file'     => 'optional_filename',
+      
+      // function: only for DS_FIELD_TYPE_FUNCTION.
+      'function' => 'theme_ds_title_field',
+
       // formatters: optional if a function is used.
       // In case the field_type is DS_FIELD_TYPE_THEME, you also
       // need to register these formatters as a theming function
diff --git a/ds/ds.module b/ds/ds.module
index c9a6e08..de29b6e 100644
--- a/ds/ds.module
+++ b/ds/ds.module
@@ -537,7 +537,7 @@ function ds_get_field_value($key, $field, $entity, $entity_type, $bundle, $view_
       if (isset($field['file'])) {
         include_once $field['file'];
       }
-      return $field['function']($field);
+      return $field['properties']['function']($field);
 
     case DS_FIELD_TYPE_THEME:
       $format = (isset($field['formatter'])) ? $field['formatter'] : key($field['properties']['formatters']);
