diff --git a/linux/system/repo.sls b/linux/system/repo.sls
index 303ea9c..e098a43 100644
--- a/linux/system/repo.sls
+++ b/linux/system/repo.sls
@@ -5,9 +5,9 @@
   pkg.installed:
   - pkgs: {{ system.pkgs }}
 
-# global proxy setup
-{%- if system.proxy.get('pkg', {}).get('enabled', False) %}
-{%- if grains.os_family == 'Debian' %}
+  # global proxy setup
+  {%- if system.proxy.get('pkg', {}).get('enabled', False) %}
+    {%- if grains.os_family == 'Debian' %}
 
 /etc/apt/apt.conf.d/99proxies-salt:
   file.managed:
@@ -18,33 +18,28 @@
       https: {{ system.proxy.get('pkg', {}).get('https', None) | default(system.proxy.get('https', None), true) }}
       http: {{ system.proxy.get('pkg', {}).get('http', None) | default(system.proxy.get('http', None), true) }}
       ftp: {{ system.proxy.get('pkg', {}).get('ftp', None) | default(system.proxy.get('ftp', None), true) }}
-
-{%- else %}
-
+    {%- else %}
 /etc/apt/apt.conf.d/99proxies-salt:
   file.absent
+    {%- endif %}
+  {%- endif %}
 
-{%- endif %}
-{%- endif %}
+  {% set default_repos = {} %}
 
-{% set default_repos = {} %}
-
-{%- if system.purge_repos|default(False) %}
-
+  {%- if system.purge_repos|default(False) %}
 purge_sources_list_d_repos:
    file.directory:
    - name: /etc/apt/sources.list.d/
    - clean: True
+  {%- endif %}
 
-{%- endif %}
-
-{%- for name, repo in system.repo.items() %}
-{%- set name=repo.get('name', name) %}
-{%- if grains.os_family == 'Debian' %}
+  {%- for name, repo in system.repo.items() %}
+    {%- set name=repo.get('name', name) %}
+    {%- if grains.os_family == 'Debian' %}
 
 # per repository proxy setup
-{%- if repo.get('proxy', {}).get('enabled', False) %}
-{%- set external_host = repo.proxy.get('host', None) or repo.source.split('/')[2] %}
+      {%- if repo.get('proxy', {}).get('enabled', False) %}
+        {%- set external_host = repo.proxy.get('host', None) or repo.source.split('/')[2] %}
 /etc/apt/apt.conf.d/99proxies-salt-{{ name }}:
   file.managed:
   - template: jinja
@@ -54,13 +49,12 @@
       https: {{ repo.proxy.get('https', None) or system.proxy.get('pkg', {}).get('https', None) | default(system.proxy.get('https', None), True) }}
       http: {{ repo.proxy.get('http', None) or system.proxy.get('pkg', {}).get('http', None) | default(system.proxy.get('http', None), True) }}
       ftp: {{ repo.proxy.get('ftp', None) or system.proxy.get('pkg', {}).get('ftp', None) | default(system.proxy.get('ftp', None), True) }}
-{%- else %}
+      {%- else %}
 /etc/apt/apt.conf.d/99proxies-salt-{{ name }}:
   file.absent
-{%- endif %}
+      {%- endif %}
 
-{%- if repo.pin is defined %}
-
+      {%- if repo.pin is defined %}
 linux_repo_{{ name }}_pin:
   file.managed:
     - name: /etc/apt/preferences.d/{{ name }}
@@ -68,160 +62,147 @@
     - template: jinja
     - defaults:
         repo_name: {{ name }}
-
-{%- else %}
-
+      {%- else %}
 linux_repo_{{ name }}_pin:
   file.absent:
     - name: /etc/apt/preferences.d/{{ name }}
+      {%- endif %}
 
-{%- endif %}
-
-{%- if repo.get('key') %} {# 2 #}
-
+      {%- if repo.get('key') %} {# 2 #}
 linux_repo_{{ name }}_key:
   cmd.run:
     - name: |
             echo "{{ repo.key | indent(12) }}" | apt-key add -
     - require_in:
-    {%- if repo.get('default', False) %}
+        {%- if repo.get('default', False) %}
       - file: default_repo_list
-    {% else %}
+        {% else %}
       - pkgrepo: linux_repo_{{ name }}
-    {% endif %}
+        {% endif %}
 
-{# key_url fetch by curl when salt <2017.7, higher version of salt has fixed bug for using a proxy_host/port specified at minion.conf #}
-{#
-   NOTE: curl/cmd.run usage to fetch gpg key has limited functionality behind proxy. Environments with salt >= 2017.7 should use
-         key_url specified at pkgrepo.manage state (which uses properly configured http_host at minion.conf). Older versions of
-         salt require to have proxy set at ENV and curl way to fetch gpg key here can have a sense for backward compatibility.
+{# key_url fetch by curl when salt <2017.7, higher version of salt has
+   fixed bug for using a proxy_host/port specified at minion.conf
 
-         Be aware that as of salt 2018.3 no_proxy option is not implemented at all.
+   NOTE: curl/cmd.run usage to fetch gpg key has limited functionality behind proxy.
+         Environments with salt >= 2017.7 should use key_url specified at
+         pkgrepo.manage state (which uses properly configured http_host at
+         minion.conf). Older versions of salt require to have proxy set at
+         ENV and curl way to fetch gpg key here can have a sense for backward
+         compatibility. Be aware that as of salt 2018.3 no_proxy option is
+         not implemented at all.
 #}
-{%- elif repo.key_url|default(False) and grains['saltversioninfo'] < [2017, 7] and not repo.key_url.startswith('salt://') %}
-
-
+      {%- elif repo.key_url|default(False) and grains['saltversioninfo'] < [2017, 7] and not repo.key_url.startswith('salt://') %}
 linux_repo_{{ name }}_key:
   cmd.run:
     - name: "curl -sL {{ repo.key_url }} | apt-key add -"
     - require_in:
-    {%- if repo.get('default', False) %}
+        {%- if repo.get('default', False) %}
       - file: default_repo_list
-    {% else %}
+        {% else %}
       - pkgrepo: linux_repo_{{ name }}
-    {% endif %}
+        {% endif %}
+      {%- endif %}
 
-{%- endif %} {# 2 #}
+      {%- if repo.get('default', False) %}
+        {%- do default_repos.update({name: repo}) %}
+      {%- else %}
 
-{%- if repo.get('default', False) %}   {# 1 #}
-  {%- do default_repos.update({name: repo}) %}  {# for 'default' repos #}
-
-{%- else %} {# for all others repos #}
-
-{%- if repo.get('enabled', True) %}
-
+        {%- if repo.get('enabled', True) %}
 linux_repo_{{ name }}:
   pkgrepo.managed:
-  {%- if repo.ppa is defined %}
+          {%- if repo.ppa is defined %}
   - ppa: {{ repo.ppa }}
-  {%- else %}
+          {%- else %}
   - humanname: {{ name }}
   - name: {{ repo.source }}
-  {%- if repo.architectures is defined %}
+            {%- if repo.architectures is defined %}
   - architectures: {{ repo.architectures }}
-  {%- endif %}
+            {%- endif %}
   - file: /etc/apt/sources.list.d/{{ name }}.list
   - clean_file: {{ repo.clean|default(True) }}
-  {%- if repo.key_id is defined %}
+            {%- if repo.key_id is defined %}
   - keyid: {{ repo.key_id }}
-  {%- endif %}
-  {%- if repo.key_server is defined %}
+            {%- endif %}
+            {%- if repo.key_server is defined %}
   - keyserver: {{ repo.key_server }}
-  {%- endif %}
-  {%- if repo.key_url is defined and (grains['saltversioninfo'] >= [2017, 7] or repo.key_url.startswith('salt://')) %}
+            {%- endif %}
+            {%- if repo.key_url is defined and (grains['saltversioninfo'] >= [2017, 7] or repo.key_url.startswith('salt://')) %}
   - key_url: {{ repo.key_url }}
-  {%- endif %}
+            {%- endif %}
   - consolidate: {{ repo.get('consolidate', False) }}
   - clean_file: {{ repo.get('clean_file', False) }}
   - refresh_db: {{ repo.get('refresh_db', True) }}
   - require:
+    # FIXME remove this usless part
     - pkg: linux_repo_prereq_pkgs
-  {%- if repo.get('proxy', {}).get('enabled', False) %}
+            {%- if repo.get('proxy', {}).get('enabled', False) %}
     - file: /etc/apt/apt.conf.d/99proxies-salt-{{ name }}
-  {%- endif %}
-  {%- if system.proxy.get('pkg', {}).get('enabled', False) %}
+            {%- endif %}
+            {%- if system.proxy.get('pkg', {}).get('enabled', False) %}
     - file: /etc/apt/apt.conf.d/99proxies-salt
-  {%- endif %}
-  {%- if system.purge_repos|default(False) %}
+            {%- endif %}
+            {%- if system.purge_repos|default(False) %}
     - file: purge_sources_list_d_repos
-  {%- endif %}
-  {%- endif %}
-
-{%- else %}
-
+            {%- endif %}
+          {%- endif %}
+        {%- else %}
 linux_repo_{{ name }}_absent:
   pkgrepo.absent:
-    {%- if repo.ppa is defined %}
+          {%- if repo.ppa is defined %}
     - ppa: {{ repo.ppa }}
-    {%- if repo.key_id is defined %}
+            {%- if repo.key_id is defined %}
     - keyid_ppa: {{ repo.keyid_ppa }}
-    {%- endif %}
-    {%- else %}
+            {%- endif %}
+          {%- else %}
     - file: /etc/apt/sources.list.d/{{ name }}.list
-    {%- if repo.key_id is defined %}
+            {%- if repo.key_id is defined %}
     - keyid: {{ repo.key_id }}
-    {%- endif %}
-    {%- endif %}
+            {%- endif %}
+          {%- endif %}
   file.absent:
     - name: /etc/apt/sources.list.d/{{ name }}.list
+        {%- endif %}
+      {%- endif %} {# 1 #}
 
-{%- endif %}
+    {%- endif %}
 
-{%- endif %} {# 1 #}
+  {%- if grains.os_family == "RedHat" %}
 
-{#- os_family Debian #}
-{%- endif %}
+    {%- if repo.get('enabled', True) %}
 
-{%- if grains.os_family == "RedHat" %}
-
-{%- if repo.get('enabled', True) %}
-
-{%- if repo.get('proxy', {}).get('enabled', False) %}
+      {%- if repo.get('proxy', {}).get('enabled', False) %}
 # PLACEHOLDER
 # TODO, implement per proxy configuration for Yum
-{%- endif %}
+      {%- endif %}
 
-{%- if not repo.get('default', False) %}
+      {%- if not repo.get('default', False) %}
 linux_repo_{{ name }}:
   pkgrepo.managed:
   - name: {{ name }}
   - humanname: {{ repo.get('humanname', name) }}
-  {%- if repo.mirrorlist is defined %}
+        {%- if repo.mirrorlist is defined %}
   - mirrorlist: {{ repo.mirrorlist }}
-  {%- else %}
+        {%- else %}
   - baseurl: {{ repo.source }}
-  {%- endif %}
+        {%- endif %}
   - gpgcheck: {% if repo.get('gpgcheck', False) %}1{% else %}0{% endif %}
-  {%- if repo.gpgkey is defined %}
+        {%- if repo.gpgkey is defined %}
   - gpgkey: {{ repo.gpgkey }}
-  {%- endif %}
+        {%- endif %}
   - require:
     - pkg: linux_repo_prereq_pkgs
-{%- endif %}
+      {%- endif %}
 
-{#- repo.enabled is false #}
-{%- else %}
+    {%- else %}
   pkgrepo.absent:
     - name: {{ repo.source }}
-{%- endif %}
+    {%- endif %}
 
-{#- os_family Redhat #}
-{%- endif %}
+  {%- endif %}
 
-{#- repo.items() loop #}
-{%- endfor %}
+  {%- endfor %}
 
-{%- if default_repos|length > 0 and grains.os_family == 'Debian' %}
+  {%- if default_repos|length > 0 and grains.os_family == 'Debian' %}
 
 default_repo_list:
   file.managed:
@@ -231,9 +212,9 @@
     - user: root
     - group: root
     - mode: 0644
-{%- if system.purge_repos|default(False) %}
+    {%- if system.purge_repos|default(False) %}
     - replace: True
-{%- endif %}
+    {%- endif %}
     - defaults:
         default_repos: {{ default_repos }}
     - require:
@@ -245,6 +226,6 @@
     - watch:
       - file: default_repo_list
 
-{%- endif %}
+  {%- endif %}
 
 {%- endif %}
