diff --git a/commerce_discount.install b/commerce_discount.install
index 5885a96..13f30ae 100644
--- a/commerce_discount.install
+++ b/commerce_discount.install
@@ -6,6 +6,13 @@
  */
 
 /**
+ * Implements hook_install().
+ */
+function commerce_discount_install() {
+  commerce_discount_install_helper();
+}
+
+/**
  * Implements hook_schema().
  */
 function commerce_discount_schema() {
@@ -126,19 +133,17 @@ function commerce_discount_requirements($phase) {
  * The instance will be added for every newly created bundle.
  */
 function commerce_discount_install_helper() {
+  field_info_cache_clear();
   $fields = field_read_fields(array(), array('include_inactive' => TRUE));
   $field_types = field_info_field_types();
 
   // Clear field info cache, so entity reference, inline_conditions and
   // commerce_product_reference field types can be used.
-  if (!isset($field_types['entityreference'])
-    || !isset($field_types['inline_conditions'])
-    || !isset($field_types['commerce_product_reference'])
-  ) {
-    field_info_cache_clear();
+  if (!isset($field_types['entityreference'], $field_types['inline_conditions'], $field_types['commerce_product_reference'])) {
+    return;
   }
 
-  if (empty($fields['commerce_discount_offer']) && isset($field_types['entityreference'])) {
+  if (empty($fields['commerce_discount_offer'])) {
     // Create entity reference field.
     $field = array(
       'entity_types' => array('commerce_discount'),
@@ -157,6 +162,7 @@ function commerce_discount_install_helper() {
     );
     field_create_field($field);
   }
+
   if (empty($fields['commerce_fixed_amount'])) {
     // Add price field to the commerce discount offer "fixed_amount" bundle.
     $field = array(
@@ -194,7 +200,7 @@ function commerce_discount_install_helper() {
     );
     field_create_field($field);
   }
-  if (empty($fields['inline_conditions']) && isset($field_types['inline_conditions'])) {
+  if (empty($fields['inline_conditions'])) {
     $field = array(
       'entity_types'      => array('commerce_discount'),
       'field_name'        => 'inline_conditions',
@@ -236,7 +242,7 @@ function commerce_discount_install_helper() {
   }
 
   // Creating field for free products offer type.
-  if (empty($fields['commerce_free_products']) && isset($field_types['commerce_product_reference'])) {
+  if (empty($fields['commerce_free_products'])) {
     $field = array(
       'entity_types' => array('commerce_discount_offer'),
       'field_name' => 'commerce_free_products',
@@ -305,7 +311,7 @@ function commerce_discount_install_helper() {
     field_create_instance($instance);
   }
   foreach (commerce_discount_types() as $type => $value) {
-    if (empty($instances['commerce_discount'][$type]['inline_conditions']) && isset($field_types['inline_conditions'])) {
+    if (empty($instances['commerce_discount'][$type]['inline_conditions'])) {
       $instance = array(
         'field_name'  => 'inline_conditions',
         'entity_type' => 'commerce_discount',
