collectstatic hell solving
diff --git a/horizon/server/plugin.sls b/horizon/server/plugin.sls
index 309b34f..20b13f8 100644
--- a/horizon/server/plugin.sls
+++ b/horizon/server/plugin.sls
@@ -1,26 +1,28 @@
 {%- from "horizon/map.jinja" import server with context %}
-{%- if server.enabled %}
+{%- if server. %}
+
+{%- if server.get('plugin', {}).horizon_theme is defined %}
+
+horizon_horizon_theme_package:
+  pkg.installed:
+  - name: {{ server.plugin.horizon_theme.source.name }}
+  - watch_in:
+    - service: horizon_services
+
+{%- endif %}
 
 {%- for plugin_name, plugin in server.get('plugin', {}).iteritems() %}
 
+{%- if plugin_name != "horizon_theme" %}
+
 horizon_{{ plugin_name }}_package:
   pkg.installed:
   - name: {{ plugin.source.name }}
   - watch_in:
     - service: horizon_services
-  {%- if grains.os == "Ubuntu" %}
-  - require:
-    - pkg: horizon_ubuntu_theme_absent
-  {%- endif %}
-
-{%- endfor %}
-
-{%- if grains.os == "Ubuntu" %}
-
-horizon_ubuntu_theme_absent:
-  pkg.purged:
-  - name: openstack-dashboard-ubuntu-theme
 
 {%- endif %}
 
+{%- endfor %}
+
 {%- endif %}
\ No newline at end of file
diff --git a/horizon/server/service.sls b/horizon/server/service.sls
index d42672b..30c2048 100644
--- a/horizon/server/service.sls
+++ b/horizon/server/service.sls
@@ -5,6 +5,14 @@
   pkg.installed:
   - names: {{ server.pkgs }}
 
+{%- if grains.os == "Ubuntu" %}
+
+horizon_ubuntu_theme_absent:
+  pkg.purged:
+  - name: openstack-dashboard-ubuntu-theme
+
+{%- endif %}
+
 horizon_config:
   file.managed:
   - name: {{ server.config }}
@@ -15,6 +23,10 @@
   - group: root
   - require:
     - pkg: horizon_packages
+    {%- if grains.os == "Ubuntu" %}
+    - pkg: horizon_ubuntu_theme_absent
+    {%- endif %}
+
 
 horizon_apache_port_config:
   file.managed: