diff --git a/heka/_service.sls b/heka/_service.sls
index d7600f9..3070185 100644
--- a/heka/_service.sls
+++ b/heka/_service.sls
@@ -1,6 +1,3 @@
-{%- from "heka/map.jinja" import service_grains with context %}
-{%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
-
 {%- if server.enabled is defined and server.enabled %}
 
 heka_{{ service_name }}_conf_dir:
@@ -111,6 +108,67 @@
 
 {# Overriding aggregated metadata from user-space pillar data #}
 
+{# Setup basic structure for all roles so updates can apply #}
+{%- set service_grains = {
+  'log_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'metric_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'remote_collector': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'aggregator': {
+    'decoder': {},
+    'input': {},
+    'trigger': {},
+    'alarm_cluster': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  },
+  'ceilometer_collector': {
+    'decoder': {},
+    'input': {},
+    'filter': {},
+    'splitter': {},
+    'encoder': {},
+    'output': {},
+  }
+} %}
+
+{# Loading the other services' support metadata for local roles #}
+{%- macro load_support_file(support_fragment_file) %}{% include support_fragment_file ignore missing %}{% endmacro %}
+{%- for svc_name, svc in pillar.iteritems() %}
+  {%- if svc.get('_support', {}).get('heka', {}).get('enabled', False) %}
+    {%- set heka_fragment_file = svc_name+'/meta/heka.yml' %}
+    {%- set heka_yaml = load_support_file(heka_fragment_file)|load_yaml %}
+    {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=heka_yaml) %}
+  {%- endif %}
+{%- endfor %}
+
 {%- for service_grain_name, service_grain in service_grains.iteritems() %}
 {% if salt['pillar.get']('heka:'+service_grain_name) %}
 
diff --git a/heka/map.jinja b/heka/map.jinja
index 45c6956..f1eba2a 100644
--- a/heka/map.jinja
+++ b/heka/map.jinja
@@ -131,63 +131,3 @@
     'sensu_watchdog_ttl': default_sensu_watchdog_ttl,
   }
 }, merge=salt['pillar.get']('heka:ceilometer_collector')) %}
-
-{# Setup basic structure for all roles so updates can apply #}
-{%- set service_grains = {
-  'log_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'metric_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'remote_collector': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'aggregator': {
-    'decoder': {},
-    'input': {},
-    'trigger': {},
-    'alarm_cluster': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  },
-  'ceilometer_collector': {
-    'decoder': {},
-    'input': {},
-    'filter': {},
-    'splitter': {},
-    'encoder': {},
-    'output': {},
-  }
-} %}
-
-{# Loading the other services' support metadata for local roles #}
-{%- for service_name, service in pillar.iteritems() %}
-  {%- if service.get('_support', {}).get('heka', {}).get('enabled', False) %}
-    {%- set grains_fragment_file = service_name+'/meta/heka.yml' %}
-    {%- set grains_yaml = load_grains_file(grains_fragment_file)|load_yaml %}
-    {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=grains_yaml) %}
-  {%- endif %}
-{%- endfor %}
diff --git a/heka/meta/salt.yml b/heka/meta/salt.yml
index 42f51ae..53b7f8d 100644
--- a/heka/meta/salt.yml
+++ b/heka/meta/salt.yml
@@ -1,4 +1,67 @@
 grain:
   heka:
-    {%- from "heka/map.jinja" import service_grains with context %}
+    {# Setup basic structure for all roles so updates can apply #}
+    {%- set service_grains = {
+      'log_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'metric_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'remote_collector': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'aggregator': {
+        'decoder': {},
+        'input': {},
+        'trigger': {},
+        'alarm_cluster': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      },
+      'ceilometer_collector': {
+        'decoder': {},
+        'input': {},
+        'filter': {},
+        'splitter': {},
+        'encoder': {},
+        'output': {},
+      }
+    } %}
+
+    {# Loading the other services' support metadata for local roles #}
+    {%- macro load_support_file(support_fragment_file) %}{% include support_fragment_file ignore missing %}{% endmacro %}
+    {%- for svc_name, svc in pillar.iteritems() %}
+      {%- if svc.get('_support', {}).get('heka', {}).get('enabled', False) %}
+        {%- set heka_fragment_file = svc_name+'/meta/heka.yml' %}
+        {%- set heka_yaml = load_support_file(heka_fragment_file)|load_yaml %}
+        {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=heka_yaml) %}
+      {%- endif %}
+    {%- endfor %}
     {{ service_grains|yaml(False)|indent(4) }}
+
+{#-
+  vim: syntax=jinja
+-#}
