diff --git a/lib/Drupal/ctools/DatabaseExportableController.php b/lib/Drupal/ctools/DatabaseExportableController.php
index fa26cfc..7f2b8ae 100644
--- a/lib/Drupal/ctools/DatabaseExportableController.php
+++ b/lib/Drupal/ctools/DatabaseExportableController.php
@@ -310,8 +310,21 @@ class DatabaseExportableController extends ExportableControllerBase {
   /**
    * @todo.
    */
-  public function create() {
-  }
+  public function create(array $data = array()) {
+    if (!empty($this->info['create callback']) && function_exists($this->info['create callback'])) {
+      return $this->info['create callback']($data);
+    }
+    else {
+      // Populate default values.
+      foreach ($this->schema['fields'] as $field => $info) {
+        // Get a default if nothing exists.
+        if (!isset($data[$field])) {
+          $data[$field] = !empty($info['default']) ? $info['default'] : NULL;
+        }
+      }
+
+      return new $this->info['exportable class']($data, $this->type);
+    }
 
   /**
    * @todo.
