diff --git a/eck.bundle.inc b/eck.bundle.inc
index 3b5b1f0..0e2b956 100644
--- a/eck.bundle.inc
+++ b/eck.bundle.inc
@@ -258,11 +258,6 @@ function eck__bundle__add_submit($form, &$form_state) {
   drupal_set_message(t('the %bundle for entity type %entity_type has been saved', 
   array('%bundle' => $bundle_name, '%entity_type' => $entity_type->name)));
 
-  Bundle::loadAll(NULL, TRUE);
-  drupal_get_schema(NULL, TRUE);
-  entity_info_cache_clear();
-  menu_rebuild();
-
   drupal_goto("{$path}/{$entity_type->name}");
 }
 
@@ -322,7 +317,6 @@ function eck__bundle__edit_form_submit($form, &$form_state) {
   $bundle->config = $bundle_config;
   // Save the bundle object to the database
   $bundle->save();
-  Bundle::loadAll(NULL, TRUE);
 }
 
 /**
@@ -615,7 +609,6 @@ function eck__manage_extra_field_form_submit($form, &$form_state) {
     $bundle->config = $config;
     // Save the bundle.
     $bundle->save();
-    Bundle::loadAll(NULL, TRUE);
   } else {
     // The extra field form setting was not found in the config so it must no longer
     // be managed. Don't do anything except notify the user.
@@ -756,7 +749,6 @@ function eck__extra_field_widget_form_submit($form, &$form_state) {
       $bundle->config = $config;
       // Save the bundle.
       $bundle->save();
-      Bundle::loadAll(NULL, TRUE);
     } else {
       // The extra field form setting was not found in the config so it must no longer
       // be managed. Don't do anything except notify the user.
@@ -816,7 +808,6 @@ function eck__remove_extra_field_form_submit($form, &$form_state) {
       $bundle->config = $config;
       // Save the bundle.
       $bundle->save();
-      Bundle::loadAll(NULL, TRUE);
     }
   }
   $form_state['redirect'] = 'admin/structure/entity-type/' . $entity_type . '/' . $bundle->name . '/fields';
diff --git a/eck.classes.inc b/eck.classes.inc
index a1171ef..107f199 100644
--- a/eck.classes.inc
+++ b/eck.classes.inc
@@ -284,7 +284,10 @@ class EntityType extends DBObject{
     }
     
     parent::save();
+    EntityType::loadAll(NULL, TRUE);
     drupal_get_schema(NULL, TRUE);
+    entity_info_cache_clear();
+    variable_set('menu_rebuild_needed', TRUE);
   }
   
   public function delete(){
@@ -385,6 +388,10 @@ class Bundle extends DBObject{
       
       if($save){
         parent::save();
+        Bundle::loadAll(NULL, TRUE);
+        drupal_get_schema(NULL, TRUE);
+        entity_info_cache_clear();
+        variable_set('menu_rebuild_needed', TRUE);
       }else{
         //@todo throw some error
       }
diff --git a/eck.entity_type.inc b/eck.entity_type.inc
index 69279eb..5cb11dc 100644
--- a/eck.entity_type.inc
+++ b/eck.entity_type.inc
@@ -239,19 +239,13 @@ function eck__entity_type__form_submit($form, &$state) {
       $bundle->name = $bundle_name;
       $bundle->label = $bundle_label;
       $bundle->save();
-      Bundle::loadAll(NULL, TRUE);
     }
     
      //lets handle the default properties
     eck__default_properties__form_submit($form, $state, $entity_type);
     
     $entity_type->save();
-    
-    //Clear info caches in order to pick up newly created entities.
-    EntityType::loadAll(NULL, TRUE);
-    drupal_get_schema(NULL, TRUE);
-    entity_info_cache_clear();
-    menu_rebuild();
+
     if($entity_type->is_new){
       drupal_set_message(t('Entity type %entity_type has been created.', array('%entity_type' => $entity_type->label)));
     } else {
diff --git a/eck.features.inc b/eck.features.inc
index 475cbf7..a1333e0 100644
--- a/eck.features.inc
+++ b/eck.features.inc
@@ -132,11 +132,6 @@ function eck_entity_type_features_rebuild($module) {
 
       $entity_type->save();
     }
-
-    EntityType::loadAll(NULL, TRUE);
-    drupal_get_schema(NULL, TRUE);
-    entity_info_cache_clear();
-    menu_rebuild();
   }
 }
 
@@ -267,10 +262,6 @@ function eck_bundle_features_rebuild($module) {
       }
       $bundle->save();
     }
-    Bundle::loadAll(NULL, TRUE);
-    drupal_get_schema(NULL, TRUE);
-    entity_info_cache_clear();
-    menu_rebuild();
   }
 }
 
diff --git a/eck.module b/eck.module
index 07d235e..5aa9ff0 100644
--- a/eck.module
+++ b/eck.module
@@ -1207,7 +1207,6 @@ function eck_form_field_ui_field_overview_form_submit($form, &$form_state) {
       $bundle->config = $config;
       // Save the bundle.
       $bundle->save();
-      Bundle::loadAll(NULL, TRUE);
     }
   }
 }
