all
diff --git a/README.md b/README.md
index cd8c6a8..5c56de1 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,22 @@
 
 # Bind DNS service
 
-bind:
-  configured_zones:
-    sub.domain.com:
-      type: master
-      notify: False
-    1.168.192.in-addr.arpa:
-      type: master
-      notify: False
+## Sample pillars
 
-available_zones:
-  sub.domain.org:
-    file: db.sub.domain.org
-    masters: "192.168.0.1;"
\ No newline at end of file
+  bind:
+    configured_zones:
+      sub.domain.com:
+        type: master
+        notify: False
+      1.168.192.in-addr.arpa:
+        type: master
+        notify: False
+
+  available_zones:
+    sub.domain.org:
+      file: db.sub.domain.org
+      masters: "192.168.0.1;"
+
+## Read more
+
+* 
\ No newline at end of file
diff --git a/files/named.conf b/files/named.conf.Debian
similarity index 100%
rename from files/named.conf
rename to files/named.conf.Debian
diff --git a/init.sls b/init.sls
index 8c8a197..b9a143c 100644
--- a/init.sls
+++ b/init.sls
@@ -1,5 +1,5 @@
 
 include:
-{% if pillar.bind.server is defined %}
+{%- if pillar.bind.server is defined %}
 - bind.server
-{% endif %}
+{%- endif %}
diff --git a/map.jinja b/map.jinja
index 7411982..ff9678b 100644
--- a/map.jinja
+++ b/map.jinja
@@ -1,22 +1,25 @@
-{% set server = salt['grains.filter_by']({
-    'Debian': {
-        'pkgs': ['bind9', 'bind9utils'],
-        'service': 'bind9',
-        'config': '/etc/bind/named.conf',
-        'local_config': '/etc/bind/named.conf.local',
-        'options_config': '/etc/bind/named.conf.options',
-        'default_zones_config': '/etc/bind/named.conf.default-zones',
-        'named_directory': '/var/cache/bind/zones',
-        'user': 'root',
-        'group': 'bind'
-    },
-    'RedHat': {
-        'pkgs': ['bind'],
-        'service': 'named',
-        'config': '/etc/named.conf',
-        'local_config': '/etc/named.conf.local',
-        'named_directory': '/var/named/data',
-        'user': 'root',
-        'group': 'named'
-    },
+
+{%- set server = salt['grains.filter_by']({
+  'Debian': {
+    'pkgs': ['bind9', 'bind9utils'],
+    'service': 'bind9',
+    'config': '/etc/bind/named.conf',
+    'local_config': '/etc/bind/named.conf.local',
+    'options_config': '/etc/bind/named.conf.options',
+    'default_zones_config': '/etc/bind/named.conf.default-zones',
+    'named_dir': '/var/cache/bind/zones',
+    'rndc_key': '/etc/rndc.key',
+    'user': 'root',
+    'group': 'bind'
+  },
+  'RedHat': {
+    'pkgs': ['bind'],
+    'service': 'named',
+    'config': '/etc/named.conf',
+    'local_config': '/etc/named.conf.local',
+    'named_dir': '/var/named/data',
+    'rndc_key': '/etc/rndc.key',
+    'user': 'root',
+    'group': 'named'
+  },
 }, merge=salt['pillar.get']('bind:server')) %}
diff --git a/server/service.sls b/server/service.sls
index cd7d3d7..0914943 100644
--- a/server/service.sls
+++ b/server/service.sls
@@ -1,126 +1,138 @@
-{% from "bind/map.jinja" import server with context %}
+{%- from "bind/map.jinja" import server with context %}
+{%- if server.enabled %}
 
 bind_packages:
   pkg.installed:
-    - pkgs: {{ server.pkgs|json }}
+  - pkgs: {{ server.pkg }}
 
 named_directory:
   file.directory:
-    - name: {{ map.named_directory }}
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: 775
-    - makedirs: True
-    - require:
-      - pkg: bind
+  - name: {{ server.named_dir }}
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 775
+  - makedirs: True
+  - require:
+    - pkg: bind
 
-{% if grains.os_family == 'RedHat' %}
+{%- if grains.os_family == 'RedHat' %}
+
 bind_config:
   file.managed:
-    - name: {{ map.config }}
-    - source: 'salt://bind/files/redhat/named.conf'
-    - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '640') }}
-    - require:
-      - pkg: bind
-    - watch_in:
-      - service: bind
+  - name: {{ server.config }}
+  - source: 'salt://bind/files/named.conf.RedHat'
+  - template: jinja
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 640
+  - require:
+    - pkg: bind_packages
+  - watch_in:
+    - service: bind_service
 
 bind_local_config:
   file.managed:
     - name: {{ map.local_config }}
     - source: 'salt://bind/files/redhat/named.conf.local'
     - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
+    - user: {{ server.user }}
+    - group: {{ server.group }}
+    - mode: 644
     - require:
-      - pkg: bind
+      - pkg: bind_packages
     - watch_in:
-      - service: named
-{% endif %}
+      - service: bind_service
 
-{% if grains['os_family'] == 'Debian' %}
+{%- endif %}
+
+{%- if grains['os_family'] == 'Debian' %}
+
 bind_config:
-  file:
-    - managed
-    - name: {{ map.config }}
-    - source: 'salt://bind/files/debian/named.conf'
-    - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
-    - require:
-      - pkg: bind
-    - watch_in:
-      - service: bind
+  file.managed:
+  - name: {{ map.config }}
+  - source: 'salt://bind/files/debian/named.conf.Debian'
+  - template: jinja
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 644
+  - require:
+    - pkg: bind_packages
+  - watch_in:
+    - service: bind_service
 
 bind_local_config:
-  file:
-    - managed
-    - name: {{ map.local_config }}
-    - source: 'salt://bind/files/debian/named.conf.local'
-    - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
-    - require:
-      - pkg: bind
-    - watch_in:
-      - service: bind
+  file.managed:
+  - name: {{ map.local_config }}
+  - source: 'salt://bind/files/debian/named.conf.local'
+  - template: jinja
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 644
+  - require:
+    - pkg: bind_packages
+  - watch_in:
+    - service: bind_service
 
 bind_options_config:
-  file:
-    - managed
-    - name: {{ map.options_config }}
-    - source: 'salt://bind/files/debian/named.conf.options'
-    - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
-    - require:
-      - pkg: bind
-    - watch_in:
-      - service: bind
+  file.managed:
+  - name: {{ map.options_config }}
+  - source: 'salt://bind/files/debian/named.conf.options'
+  - template: jinja
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 644
+  - require:
+    - pkg: bind_packages
+  - watch_in:
+    - service: bind_service
 
 bind_default_zones:
-  file:
-    - managed
-    - name: {{ map.default_zones_config }}
-    - source: 'salt://bind/files/debian/named.conf.default-zones'
-    - template: jinja
-    - user: {{ salt['pillar.get']('bind:config:user', map.user) }}
-    - group: {{ salt['pillar.get']('bind:config:group', map.group) }}
-    - mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
-    - require:
-      - pkg: bind
-    - watch_in:
-      - service: bind
+  file.managed:
+  - name: {{ map.default_zones_config }}
+  - source: 'salt://bind/files/debian/named.conf.default-zones'
+  - template: jinja
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 644
+  - require:
+    - pkg: bind_packages
+  - watch_in:
+    - service: bind_service
 
 /var/log/bind9:
-  file:
-    - directory
-    - user: root
-    - group: bind
-    - mode: 775
-    - template: jinja
-
+  file.directory:
+  - user: {{ server.user }}
+  - group: {{ server.group }}
+  - mode: 775
+  - template: jinja
 
 /etc/logrotate.d/bind9:
-  file:
-    - managed
-    - source: salt://bind/files/debian/logrotate_bind
-    - user: root
-    - group: root
+  file.managed:
+  - source: salt://bind/files/logrotate
+  - user: root
+  - group: root
+
+setup_rndc:
+  cmd.run:
+  - name: /usr/sbin/rndc-confgen -r /dev/urandom -a -c {{ server.rndc_key }}
+  - require:
+    - pkg: bind_packages
+
+{{ server.rndc_key }}
+  file.managed:
+  - user: root
+  - mode: 0640
+  - require:
+    - cmd: setup_rndc
 
 {%- endif %}
 
 bind_service:
   service.running:
-    - name: {{ server.service }}
-    - enable: true
-    - reload: true
-    - require:
-      - pkg: bind_packages
+  - name: {{ server.service }}
+  - enable: true
+  - reload: true
+  - require:
+    - pkg: bind_packages
+
+{%- endif %}
\ No newline at end of file