diff --git a/tomcat/map.jinja b/tomcat/map.jinja
index 987ca2423532d87a274a7f4b0e5f3d0a628578f2..ba7902d6c326680f88ec229db1c8fc810640d7c9 100644
--- a/tomcat/map.jinja
+++ b/tomcat/map.jinja
@@ -1,25 +1,39 @@
 # -*- coding: utf-8 -*-
 # vim: ft=jinja
 
-{% import_yaml "tomcat/defaults.yaml" as defaults %}
-{% import_yaml "tomcat/osmap.yaml" as osmap %}
-{% import_yaml "tomcat/codenamemap.yaml" as codemap %}
+{#- Get the `tplroot` from `tpldir` #}
+{%- set tplroot = tpldir.split('/')[0] %}
+{#- Start imports as #}
+{%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %}
+{%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %}
+{%- import_yaml tplroot ~ "/osfingermap.yaml" as osfingermap %}
 
-{# get the settings for the os_family grain #}
-{% set osfam = salt['grains.filter_by'](osmap) or {} %}
-{# get the settings for the oscodename grain, os_family data will override
-    oscodename data #}
-{% set oscode = salt['grains.filter_by'](codemap,
-                                         grain='oscodename',
-                                         merge=osfam) or {} %}
+{#- Retrieve the config dict only once #}
+{%- set _config = salt['config.get'](tplroot, default={}) %}
 
-{# merge the os family/codename specific data over the defaults #}
-{% do defaults.tomcat.update(oscode) %}
+{%- set defaults = salt['grains.filter_by'](
+      default_settings,
+      default=tplroot,
+      merge=salt['grains.filter_by'](
+        osfamilymap,
+        grain='os_family',
+        merge=salt['grains.filter_by'](
+          osfingermap,
+          grain='osfinger',
+          merge=salt['grains.filter_by'](
+            _config,
+            default='lookup'
+          )
+        )
+      )
+    )
+%}
 
-{# merge the pillar:lookup dict into the defaults/os specific dict #}
-{% set lookup = salt['pillar.get']('tomcat:lookup',
-                                   default=defaults.tomcat,
-                                   merge=True) %}
+{%- set config = salt['grains.filter_by'](
+      {'defaults': defaults},
+      default='defaults',
+      merge=_config
+    )
+%}
 
-{# merge the actual tomcat pillar into the above combined dict #}
-{% set tomcat = salt['pillar.get']('tomcat', default=lookup, merge=True) %}
+{%- set tomcat = config %}
diff --git a/tomcat/osmap.yaml b/tomcat/osfamilymap.yaml
similarity index 94%
rename from tomcat/osmap.yaml
rename to tomcat/osfamilymap.yaml
index bc5bcd983540044fb1224970fb8d29a7afb96279..e86ac6b4ad2f4765f1f950f5122fa2176ac2fb37 100644
--- a/tomcat/osmap.yaml
+++ b/tomcat/osfamilymap.yaml
@@ -19,10 +19,6 @@ RedHat:
   native_pkg: tomcat-native
   manager_pkg: tomcat-admin-webapps
   main_config_template: salt://tomcat/files/tomcat-default-CentOS.template
-CentOS:
-  native_pkg: tomcat-native
-  manager_pkg: tomcat-admin-webapps
-  main_config_template: salt://tomcat/files/tomcat-default-CentOS.template
 openSUSE:
   ver: 8
   native_pkg: libtcnative-1-0
diff --git a/tomcat/codenamemap.yaml b/tomcat/osfingermap.yaml
similarity index 72%
rename from tomcat/codenamemap.yaml
rename to tomcat/osfingermap.yaml
index 9e4d14980c9383aee49e7d16c506cdcd757e1398..16188aa400476bda84bbdc81a2823b29c13da103 100644
--- a/tomcat/codenamemap.yaml
+++ b/tomcat/osfingermap.yaml
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 # vim: ft=yaml
 ---
-trusty:
+Ubuntu-14.04:
   ver: 7
   pkg: tomcat7
   manager_pkg: tomcat7-admin
@@ -11,7 +11,7 @@ trusty:
   service: tomcat7
   user: tomcat7
   group: tomcat7
-wheezy:
+Debian-7:
   pkg: tomcat7
   manager_pkg: tomcat7-admin
   conf_dir: /etc/tomcat7
@@ -20,3 +20,12 @@ wheezy:
   service: tomcat7
   user: tomcat7
   group: tomcat7
+Debian-10:
+  ver: 9
+  pkg: tomcat9
+  manager_pkg: tomcat9-admin
+  conf_dir: /etc/tomcat9
+  main_config: /etc/default/tomcat9
+  service: tomcat9
+  user: tomcat
+  group: tomcat