diff --git a/source/deploy/modules/wf/./wf_2012040.patch b/source/deploy/modules/wf/./wf_2012040.patch
new file mode 100644
index 0000000..e69de29
diff --git a/home/dfranca/wf/wf_environment/includes/wf_environment.controller.inc b/home/dfranca/wf/wf_environment/includes/wf_environment.controller.inc
deleted file mode 100644
index 4049adb..0000000
--- a/home/dfranca/wf/wf_environment/includes/wf_environment.controller.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @file
- * Workflow environment controller class.
- */
-
-class WfEnvironmentController extends TecController {
-}
diff --git a/home/dfranca/wf/wf_environment/wf_environment.info b/source/deploy/modules/wf/./wf_environment/wf_environment.info
index d5245c5..0e50d22 100644
--- a/home/dfranca/wf/wf_environment/wf_environment.info
+++ b/source/deploy/modules/wf/./wf_environment/wf_environment.info
@@ -4,15 +4,16 @@ core = 7.x
 package = WF
 version = 7.x-1.0-dev
 project = wf_environment
+dependencies[] = entity
 dependencies[] = features
 dependencies[] = shell_client
 dependencies[] = uuid
+dependencies[] = wf
 features[features_api][] = api:1
 features[user_permission][] = access environments
 features[user_permission][] = administer environments
 features[user_permission][] = manage environments
 
-files[] = includes/wf_environment.controller.inc
 files[] = includes/wf_environment.class.inc
 
 ; Information added by drupal.org packaging script on 2013-02-04
diff --git a/home/dfranca/wf/wf_environment/wf_environment.module b/source/deploy/modules/wf/./wf_environment/wf_environment.module
index 213152b..1e87f04 100644
--- a/home/dfranca/wf/wf_environment/wf_environment.module
+++ b/source/deploy/modules/wf/./wf_environment/wf_environment.module
@@ -2,7 +2,7 @@
 
 /**
  * @file
- *   Workflow Environment Management functions.
+ * Workflow Environment Management functions.
  */
 
 /**
@@ -14,7 +14,7 @@ function wf_environment_entity_info() {
   $info['wf_environment'] = array(
     'label' => t('Workflow Environment'),
     'entity class' => 'WfEnvironment',
-    'controller class' => 'WfEnvironmentController',
+    'controller class' => 'EntityAPIController',
     'base table' => 'wf_env',
     'revision table' => 'wf_env_revision',
     'fieldable' => TRUE,
@@ -34,7 +34,7 @@ function wf_environment_entity_info() {
     'view modes' => array(
       'full' => array(
         'label' => t('Full Environment'),
-        'custom settings' =>  FALSE,
+        'custom settings' => FALSE,
       ),
     ),
     'label callback' => 'entity_class_label',
@@ -42,6 +42,7 @@ function wf_environment_entity_info() {
     'module' => 'wf_environment',
     'uuid' => TRUE,
     'access callback' => 'wf_job_access',
+    'default_revision' => TRUE,
   );
 
   $info['wf_environment_bundle'] = array(
@@ -351,6 +352,7 @@ function wf_environment_add($bundle) {
     'log' => t('Initial content'),
     'active' => TRUE,
     'is_new' => TRUE,
+    'default_revision' => TRUE,
   );
 
   $env = new WfEnvironment($args);
@@ -358,7 +360,6 @@ function wf_environment_add($bundle) {
 }
 
 function wf_environment_edit_form($form, $form_state, $env) {
-
   $form['bundle'] = array(
     '#type' => 'value',
     '#value' => $env->bundle,
@@ -453,6 +454,11 @@ function wf_environment_edit_form($form, $form_state, $env) {
     );
   }
 
+  $form['default_revision'] = array(
+    '#type' => 'value',
+    '#value' => $env->default_revision,
+  );
+
   return $form;
 }
 
@@ -467,6 +473,7 @@ function wf_environment_edit_form_validate($form, &$form_state) {
 function wf_environment_edit_form_submit($form, &$form_state) {
   $env = (object) $form_state['values'];
   field_attach_submit('wf_environment', $env, $form, $form_state);
+
   $saved_env = wf_environment_save($env);
   $form_state['redirect'] = "environment/$saved_env->id";
 }
@@ -486,7 +493,7 @@ function wf_environment_save($env) {
     $env->revision = TRUE;
   }
 
-  entity_get_controller('wf_environment')->save($env);
+  entity_save('wf_environment', $env);
 
   return $env;
 }
diff --git a/home/dfranca/wf/wf_job/includes/wf_job.class.inc b/source/deploy/modules/wf/./wf_job/includes/wf_job.class.inc
index f4fb9b8..3e7234b 100644
--- a/home/dfranca/wf/wf_job/includes/wf_job.class.inc
+++ b/source/deploy/modules/wf/./wf_job/includes/wf_job.class.inc
@@ -34,6 +34,8 @@ class WfJob extends Entity {
 
   public $uid;
 
+  public $default_revision = TRUE;
+
   /**
    * Creates a new entity.
    *
@@ -43,7 +45,6 @@ class WfJob extends Entity {
     parent::__construct($values, 'wf_job');
   }
 
-  
   /**
    * Generates the URI for the entity.
    */
diff --git a/home/dfranca/wf/wf_job/includes/wf_job.controller.inc b/source/deploy/modules/wf/./wf_job/includes/wf_job.controller.inc
index 97df799..e9b0379 100644
--- a/home/dfranca/wf/wf_job/includes/wf_job.controller.inc
+++ b/source/deploy/modules/wf/./wf_job/includes/wf_job.controller.inc
@@ -5,7 +5,7 @@
  * Workflow job controller class.
  */
 
-class WfJobController extends TecController {
+class WfJobController extends EntityAPIController {
 
   /**
    * Builds a structured array representing the entity's content.
diff --git a/home/dfranca/wf/wf_job/includes/wf_job.pages.inc b/source/deploy/modules/wf/./wf_job/includes/wf_job.pages.inc
index aa619d8..ba37ada 100644
--- a/home/dfranca/wf/wf_job/includes/wf_job.pages.inc
+++ b/source/deploy/modules/wf/./wf_job/includes/wf_job.pages.inc
@@ -29,11 +29,9 @@ function wf_job_page_add() {
  * Job add menu callback.
  */
 function wf_job_add($bundle) {
-  $info = array(
-    'bundle' => $bundle,
-  );
+  $info = array('bundle' => $bundle);
 
-  $job = entity_get_controller('wf_job')->create($info);
+  $job = entity_create('wf_job', $info);
 
   return drupal_get_form('wf_job_edit_form', $job);
 }
@@ -52,7 +50,6 @@ function wf_job_edit($job = NULL) {
  * Job edit form.
  */
 function wf_job_edit_form($form, $form_state, $job) {
-
   // Set some sane default values.
   $is_new = FALSE;
   $status_type = 'select';
@@ -73,6 +70,11 @@ function wf_job_edit_form($form, $form_state, $job) {
 
   $form = array();
 
+  $form['default_revision'] = array(
+    '#type' => 'value',
+    '#value' => $job->default_revision,
+  );
+
   $form['bundle'] = array(
     '#type' => 'value',
     '#value' => $job->bundle,
@@ -174,9 +176,8 @@ function wf_job_edit_form($form, $form_state, $job) {
     '#required' => TRUE,
   );
 
-  $form['actions'] = array(
-    '#weight' => 99,
-  );
+  $form['actions'] = array('#weight' => 99);
+
   $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
@@ -197,7 +198,7 @@ function wf_job_edit_form($form, $form_state, $job) {
 }
 
 /**
- * Default implementation for accessing a job sandbox
+ * Default implementation for accessing a job sandbox.
  */
 function wf_job_sandbox_login($job = NULL) {
   $uri = wf_job_sandbox_uri($job);
diff --git a/home/dfranca/wf/wf_job/wf_job.module b/source/deploy/modules/wf/./wf_job/wf_job.module
index 9e46468..8847a31 100644
--- a/home/dfranca/wf/wf_job/wf_job.module
+++ b/source/deploy/modules/wf/./wf_job/wf_job.module
@@ -28,15 +28,13 @@ function wf_job_entity_info() {
       'uuid' => 'uuid',
       'revision uuid' => 'vuuid',
     ),
-    'bundle keys' => array(
-      'bundle' => 'bundle',
-    ),
+    'bundle keys' => array('bundle' => 'bundle'),
     'bundles' => array(),
     'load hook' => 'wf_job_load',
     'view modes' => array(
       'full' => array(
         'label' => t('Full Job'),
-        'custom settings' =>  FALSE,
+        'custom settings' => FALSE,
       ),
     ),
     'label callback' => 'entity_class_label',
@@ -45,6 +43,7 @@ function wf_job_entity_info() {
     'uuid' => TRUE,
     'access callback' => 'wf_job_access',
     'views controller class' => 'WfJobViewsController',
+    'default_revision' => TRUE,
   );
 
   $info['wf_job_bundle'] = array(
@@ -472,7 +471,7 @@ function wf_job_load_bundles() {
  * Creates a new job object.
  */
 function entityform_create($values = array()) {
-  return entity_get_controller('wf_job')->create($values);
+  return entity_create('wf_job', $values);
 }
 
 /**
@@ -489,7 +488,7 @@ function wf_job_delete(WfJob $job) {
  *   A list of job ids to delete.
  */
 function entityform_delete_multiple(array $ids) {
-  entity_get_controller('wf_job')->delete($ids);
+  entity_delete('wf_job', $ids);
 }
 
 /**
@@ -521,7 +520,7 @@ function wf_job_save($job) {
     $job->created = REQUEST_TIME;
     $job->uid = $GLOBALS['user']->uid;
   }
-  entity_get_controller('wf_job')->save($job);
+  entity_save('wf_job', $job);
 }
 
 // /Entity CRUD
@@ -904,7 +903,7 @@ function wf_job_reply_save($job, $title, $body, array $extra_values = array()) {
     $reply_fields['body'] => array(LANGUAGE_NONE => array(array('value' => $body))),
   ) + $extra_values;
 
-  $reply = entity_get_controller('reply')->create($reply_values);
+  $reply = entity_create('reply', $reply_values);
   reply_save($reply);
 
   return $reply;
@@ -924,7 +923,7 @@ function wf_job_action_event_invoke($event, $job, $reply) {
   }
 
   if (empty($next_env)) {
-    $next_env = entity_get_controller('wf_environment')->create(array('env' => 'None'));
+    $next_env = entity_create('wf_environment', array('env' => 'None'));
   }
 
   rules_invoke_event_by_args("wf_job_$event", array(
diff --git a/home/dfranca/wf/wf_job/wf_job.services.inc b/source/deploy/modules/wf/./wf_job/wf_job.services.inc
index 53c8b31..babaf07 100644
--- a/home/dfranca/wf/wf_job/wf_job.services.inc
+++ b/source/deploy/modules/wf/./wf_job/wf_job.services.inc
@@ -209,7 +209,7 @@ function wf_job_services_retrieve($jid) {
  *   Unique identifier for the job (jid) or errors if there was a problem.
  */
 function wf_job_services_create($job) {
-  $job = entity_get_controller('wf_job')->create($job);
+  $job = entity_create('wf_job', $job);
   unset($job->jid);
 
   try {
@@ -236,7 +236,7 @@ function wf_job_services_create($job) {
  *   Unique identifier for the job (jid) or FALSE if there was a problem.
  */
 function wf_job_services_update($jid, $job) {
-  $job = entity_get_controller('wf_job')->create($job);
+  $job = entity_create('wf_job', $job);
   $job->jid = $jid;
   try {
     wf_job_save($job);
