diff --git a/administrative.json b/administrative.json
deleted file mode 100644
index a11a1a4..0000000
--- a/administrative.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-    "type": "overpass",
-    "name": {
-        "ast": "Divisiones Alministratives",
-        "ca": "Àrees Administratives",
-        "cs": "Administrativní oblasti",
-        "de": "Administrative Gebiete",
-        "el": "Διοικητικά Όρια",
-        "en": "Administrative Areas",
-        "es": "Áreas Administrativas",
-        "et": "Administratiivalad",
-        "fr": "Zones administratives",
-        "gl": "Divisións administrativas",
-        "hu": "Közigazgatási határok",
-        "it": "Suddivisioni amministrative",
-        "ja": "行政界",
-        "nb": "Administrative områder",
-        "nl": "Administratieve gebieden",
-        "oc": "Divisions administrativas",
-        "pl": "Obszary administracyjne",
-        "pt": "Regiões administrativas",
-        "pt-br": "Divisão político-administrativa",
-        "ro": "Zona administrativă",
-        "ru": "Административные границы",
-        "sr": "Административне зоне",
-        "tr": "İdari Alanlar"
-    },
-    "query": {
-        "3": [
-            "(",
-            "way[admin_level=2];",
-            "relation[admin_level=2];",
-            ")"
-        ],
-        "6": [
-            "(",
-            "way[admin_level~\"^(2|3)$\"];",
-            "relation[admin_level~\"^(2|3)$\"];",
-            ")"
-        ],
-        "11": [
-            "(",
-            "way[admin_level~\"^(2|3|4|5)$\"];",
-            "relation[admin_level~\"^(2|3|4|5)$\"];",
-            ")"
-        ],
-        "13": [
-            "(",
-            "way[admin_level~\"^(2|3|4|5|6|7)$\"];",
-            "relation[admin_level~\"^(2|3|4|5|6|7)$\"];",
-            ")"
-        ],
-        "15": [
-            "(",
-            "way[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];",
-            "relation[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];",
-            ")"
-        ],
-        "16": [
-            "(",
-            "way[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];",
-            "relation[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];",
-            ")"
-        ]
-    },
-    "feature": {
-        "description": "{{ tagTrans('admin_level', tags.admin_level) }}",
-        "body": "{{ keyTrans('admin_level') }}: {{ tags.admin_level }}"
-    }
-}
diff --git a/administrative.yaml b/administrative.yaml
new file mode 100644
index 0000000..4d8a726
--- /dev/null
+++ b/administrative.yaml
@@ -0,0 +1,61 @@
+type: overpass
+name:
+  ast: Divisiones Alministratives
+  ca: Àrees Administratives
+  cs: Administrativní oblasti
+  de: Administrative Gebiete
+  el: Διοικητικά Όρια
+  en: Administrative Areas
+  es: Áreas Administrativas
+  et: Administratiivalad
+  fr: Zones administratives
+  gl: Divisións administrativas
+  hu: Közigazgatási határok
+  it: Suddivisioni amministrative
+  ja: 行政界
+  nb: Administrative områder
+  nl: Administratieve gebieden
+  oc: Divisions administrativas
+  pl: Obszary administracyjne
+  pt: Regiões administrativas
+  pt-br: Divisão político-administrativa
+  ro: Zona administrativă
+  ru: Административные границы
+  sr: Административне зоне
+  tr: İdari Alanlar
+query:
+  3: |-
+    (
+    way[admin_level=2];
+    relation[admin_level=2];
+    )
+  6: |-
+    (
+    way[admin_level~"^(2|3)$"];
+    relation[admin_level~"^(2|3)$"];
+    )
+  11: |-
+    (
+    way[admin_level~"^(2|3|4|5)$"];
+    relation[admin_level~"^(2|3|4|5)$"];
+    )
+  13: |-
+    (
+    way[admin_level~"^(2|3|4|5|6|7)$"];
+    relation[admin_level~"^(2|3|4|5|6|7)$"];
+    )
+  15: |-
+    (
+    way[admin_level~"^(2|3|4|5|6|7|8|9)$"];
+    relation[admin_level~"^(2|3|4|5|6|7|8|9)$"];
+    )
+  16: |-
+    (
+    way[admin_level~"^(2|3|4|5|6|7|8|9|10|11)$"];
+    relation[admin_level~"^(2|3|4|5|6|7|8|9|10|11)$"];
+    )
+feature:
+  description: |-
+    {{ tagTrans("admin_level", tags.admin_level) }}
+  body: |-
+    {{ keyTrans("admin_level") }}: {{ tags.admin_level }}
diff --git a/natural.json b/natural.json
deleted file mode 100644
index 58b96b5..0000000
--- a/natural.json
+++ /dev/null
@@ -1,318 +0,0 @@
-{
-    "type": "overpass",
-    "name": {
-        "ast": "Formaciones naturales",
-        "ca": "Formacions Naturals",
-        "cs": "Přírodní úkazy",
-        "de": "Naturformationen",
-        "el": "Φυσικοί Σχηματισμοί",
-        "en": "Natural Formations",
-        "es": "Formaciones naturales",
-        "fr": "Éléments naturels",
-        "gl": "Formacións naturais",
-        "hu": "Természeti képződmények",
-        "it": "Formazioni naturali",
-        "ja": "自然地層",
-        "nb": "Naturlige formasjoner",
-        "nl": "Natuurlijke Formaties",
-        "oc": "Elements naturaus",
-        "pl": "Obiekty przyrodnicze",
-        "pt": "Formações naturais",
-        "pt-br": "Elementos naturais",
-        "ru": "Природные образования",
-        "sr": "Природне појаве",
-        "tr": "Doğal Oluşumlar",
-        "uk": "Природне середовище"
-    },
-    "query": {
-        "9": [
-            "(",
-            "node[natural~\"^(peak|volcano|valley)$\"];",
-            "nwr[place~\"^(island)$\"];",
-            ")"
-        ],
-        "13": [
-            "(",
-            "nwr[natural~\"^(peak|volcano|wood|glacier|cape|peninsula|beach|coastline|reef|hill|valley|ridge|arete|saddle|sinkhole|cave_entrance|isthmus)$\"];",
-            "nwr[place~\"^(island|islet)$\"];",
-            ")"
-        ],
-        "16": [
-            "(",
-            "nwr[natural][natural!~\"^(water|divide|bay|strait|spring|hot_spring|geyser|tree)$\"];",
-            "nwr[place~\"^(island|islet)$\"];",
-            ")"
-        ],
-        "18": [
-            "(",
-            "nwr[natural][natural!~\"^(water|divide|bay|strait|spring|hot_spring|geyser)$\"];",
-            "nwr[place~\"^(island|islet)$\"];",
-            ")"
-        ]
-    },
-    "feature": {
-        "pre": [
-            "{% if tags.place in [ 'island', 'islet' ] %}",
-            "{% set key = 'place' %}",
-            "{% set value = tags.place %}",
-            "{% else %}",
-            "{% set key = 'natural' %}",
-            "{% set value = tags.natural %}",
-            "{% endif %}"
-        ],
-        "details": "{% if tags.natural == 'peak' and tags.ele %}{{ tags.ele }}m{% endif %}",
-        "description": "{{ tagTrans(key, value) }}",
-        "style": {
-            "color": "{{ const[value].color|default('#f2756a') }}"
-        },
-        "markerSign": "<span style='color: white'>{{ const[value].sign|raw }}</span>",
-        "markerSymbol": "{{ markerPointer({ fillColor: const[value].color|default('#f2756a') })|raw }}",
-        "listMarkerSymbol": "{{ markerCircle({ fillColor: const[value].color|default('#f2756a') })|raw }}",
-        "priority": "{% if tags.name %}0{% else %}1{% endif %}"
-    },
-    "filter": {
-        "type": {
-            "name": "{{ trans('filter:type') }}",
-            "key": "natural",
-            "type": "select",
-            "show_default": "true",
-            "values": "{% set list = [] %}{% for k, v in const %}<option value=\"{{ k }}\" {% if v.key %}query='nwr[\"{{ v.key }}\"=\"{{ k }}\"]'{% endif %}>{% set list = list|merge([ k ]) %}{{ tagTrans(v.key|default('natural'), k) }}</option>{% endfor %}<option weight='1' value='other' query='nwr[natural][natural!~\"^(|.*;)({{ list|join('|') }})(|;.*)$\"]'>{{ trans('other') }}</option>",
-            "sort": "natsort",
-            "op": "has"
-        }
-    },
-    "const": {
-        "island": {
-            "zoom": 9,
-            "sign": "<img data-src='temaki:island_trees_building'>",
-            "color": "#cfb997",
-            "key": "place",
-            "group": "landform"
-        },
-        "islet": {
-            "zoom": 13,
-            "sign": "<img data-src='temaki:island_trees_building'>",
-            "color": "#cfb997",
-            "key": "place",
-            "group": "landform"
-        },
-        "wood": {
-            "zoom": 13,
-            "sign": "<i class='fas fa-tree'></i>",
-            "color": "darkgreen",
-            "group": "vegetation"
-        },
-        "tree_row": {
-            "zoom": 16,
-            "sign": "<i class='fas fa-tree'></i>",
-            "color": "darkgreen",
-            "group": "vegetation"
-        },
-        "tree": {
-            "zoom": 18,
-            "sign": "<i class='fas fa-tree'></i>",
-            "color": "darkgreen",
-            "group": "vegetation"
-        },
-        "scrub": {
-            "zoom": 16,
-            "sign": "",
-            "color": "green",
-            "group": "vegetation"
-        },
-        "heath": {
-            "zoom": 16,
-            "sign": "",
-            "color": "green",
-            "group": "vegetation"
-        },
-        "moor": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#8aba50",
-            "group": "vegetation"
-        },
-        "grassland": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#00dd24",
-            "group": "vegetation"
-        },
-        "fell": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#49ba91",
-            "group": "vegetation"
-        },
-        "bare_rock": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#6f6f6f",
-            "group": "vegetation"
-        },
-        "scree": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#6f6f6f",
-            "group": "vegetation"
-        },
-        "shingle": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#6f6f6f",
-            "group": "vegetation"
-        },
-        "sand": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#f9d199",
-            "group": "vegetation"
-        },
-        "mud": {
-            "zoom": 16,
-            "sign": "<img data-src='maki:wetland?fill=white'>",
-            "color": "#988b00",
-            "group": "vegetation"
-        },
-        "wetland": {
-            "zoom": 16,
-            "sign": "<img data-src='maki:wetland?fill=white'>",
-            "color": "#00baff",
-            "group": "water"
-        },
-        "glacier": {
-            "zoom": 13,
-            "sign": "<i style='color: black;' class='fas fa-icicles'></i>",
-            "color": "white",
-            "group": "water"
-        },
-        "cape": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#1d7500",
-            "group": "water"
-        },
-        "peninsula": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#1d7500",
-            "group": "water"
-        },
-        "beach": {
-            "zoom": 13,
-            "sign": "<i class='fas fa-umbrella-beach'></i>",
-            "color": "#ff7f50",
-            "group": "water"
-        },
-        "coastline": {
-            "zoom": 13,
-            "sign": "",
-            "color": "blue",
-            "group": "water"
-        },
-        "reef": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#005fbd",
-            "group": "water"
-        },
-        "peak": {
-            "zoom": 9,
-            "sign": "<i class='fas fa-mountain'></i>",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "hill": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "volcano": {
-            "zoom": 9,
-            "sign": "<i class='fas fa-mountain'></i>",
-            "color": "#cf3a00",
-            "group": "landform"
-        },
-        "valley": {
-            "zoom": 9,
-            "sign": "",
-            "color": "#1d7500",
-            "group": "landform"
-        },
-        "river_terrace": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#a0a500",
-            "group": "landform"
-        },
-        "ridge": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "arete": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "cliff": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "saddle": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "rock": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "stone": {
-            "zoom": 16,
-            "sign": "",
-            "color": "#4f4f4f",
-            "group": "landform"
-        },
-        "sinkhole": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#a0a500",
-            "group": "landform"
-        },
-        "cave_entrance": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#000000",
-            "group": "landform"
-        },
-        "isthmus": {
-            "zoom": 13,
-            "sign": "",
-            "color": "#1d7500",
-            "group": "landform"
-        }
-    },
-    "info": [
-        "<table>",
-        "  {% for k, data in const %}",
-        "    {% if data.zoom <= map.zoom %}",
-        "    <tr>",
-        "      <td>",
-        "        {{ markerCircle({ fillColor: data.color })|raw }}<div class='sign'>{{ data.sign|raw }}</div>",
-        "      </td>",
-        "      <td>{{ tagTrans('natural', k) }}</td>",
-        "    </tr>",
-        "    {% endif %}",
-        "  {% endfor %}",
-        "</table>"
-    ]
-}
diff --git a/natural.yaml b/natural.yaml
new file mode 100644
index 0000000..383ca02
--- /dev/null
+++ b/natural.yaml
@@ -0,0 +1,276 @@
+type: overpass
+name:
+  ast: Formaciones naturales
+  ca: Formacions Naturals
+  cs: Přírodní úkazy
+  de: Naturformationen
+  el: Φυσικοί Σχηματισμοί
+  en: Natural Formations
+  es: Formaciones naturales
+  fr: Éléments naturels
+  gl: Formacións naturais
+  hu: Természeti képződmények
+  it: Formazioni naturali
+  ja: 自然地層
+  nb: Naturlige formasjoner
+  nl: Natuurlijke Formaties
+  oc: Elements naturaus
+  pl: Obiekty przyrodnicze
+  pt: Formações naturais
+  pt-br: Elementos naturais
+  ru: Природные образования
+  sr: Природне појаве
+  tr: Doğal Oluşumlar
+  uk: Природне середовище
+query:
+  9: |-
+    (
+    node[natural~"^(peak|volcano|valley)$"];
+    nwr[place~"^(island)$"];
+    )
+  13: |-
+    (
+    nwr[natural~"^(peak|volcano|wood|glacier|cape|peninsula|beach|coastline|reef|hill|valley|ridge|arete|saddle|sinkhole|cave_entrance|isthmus)$"];
+    nwr[place~"^(island|islet)$"];
+    )
+  16: |-
+    (
+    nwr[natural][natural!~"^(water|divide|bay|strait|spring|hot_spring|geyser|tree)$"];
+    nwr[place~"^(island|islet)$"];
+    )
+  18: |-
+    (
+    nwr[natural][natural!~"^(water|divide|bay|strait|spring|hot_spring|geyser)$"];
+    nwr[place~"^(island|islet)$"];
+    )
+feature:
+  pre: |-
+    {% if tags.place in [ 'island', 'islet' ] %}
+    {% set key = 'place' %}
+    {% set value = tags.place %}
+    {% else %}
+    {% set key = 'natural' %}
+    {% set value = tags.natural %}
+    {% endif %}
+  details: |-
+    {% if tags.natural == "peak" and tags.ele %}{{ tags.ele }}m{% endif %}
+  description: |-
+    {{ tagTrans(key, value) }}
+  style:
+    color: |-
+      {{ const[value].color|default("#f2756a") }}
+  markerSign: |-
+    <span style="color: white">{{ const[value].sign|raw }}</span>
+  markerSymbol: |-
+    {{ markerPointer({ fillColor: const[value].color|default("#f2756a") })|raw }}
+  listMarkerSymbol: |-
+    {{ markerCircle({ fillColor: const[value].color|default("#f2756a") })|raw }}
+  priority: |-
+    {% if tags.name %}0{% else %}1{% endif %}
+filter:
+  type:
+    name: |-
+      {{ trans("filter:type") }}
+    key: natural
+    type: select
+    show_default: true
+    values: |-
+      {% set list = [] %}{% for k, v in const %}<option value="{{ k }}" {% if v.key %}query='nwr["{{ v.key }}"="{{ k }}"]'{% endif %}>{% set list = list|merge([ k ]) %}{{ tagTrans(v.key|default('natural'), k) }}</option>{% endfor %}<option weight='1' value='other' query='nwr[natural][natural!~"^(|.*;)({{ list|join('|') }})(|;.*)$"]'>{{ trans('other') }}</option>
+    sort: natsort
+    op: has
+const:
+  island:
+    zoom: 9
+    sign: <img data-src='temaki:island_trees_building'>
+    color: '#cfb997'
+    key: place
+    group: landform
+  islet:
+    zoom: 13
+    sign: <img data-src='temaki:island_trees_building'>
+    color: '#cfb997'
+    key: place
+    group: landform
+  wood:
+    zoom: 13
+    sign: <i class='fas fa-tree'></i>
+    color: darkgreen
+    group: vegetation
+  tree_row:
+    zoom: 16
+    sign: <i class='fas fa-tree'></i>
+    color: darkgreen
+    group: vegetation
+  tree:
+    zoom: 18
+    sign: <i class='fas fa-tree'></i>
+    color: darkgreen
+    group: vegetation
+  scrub:
+    zoom: 16
+    sign: ''
+    color: green
+    group: vegetation
+  heath:
+    zoom: 16
+    sign: ''
+    color: green
+    group: vegetation
+  moor:
+    zoom: 13
+    sign: ''
+    color: '#8aba50'
+    group: vegetation
+  grassland:
+    zoom: 16
+    sign: ''
+    color: '#00dd24'
+    group: vegetation
+  fell:
+    zoom: 16
+    sign: ''
+    color: '#49ba91'
+    group: vegetation
+  bare_rock:
+    zoom: 16
+    sign: ''
+    color: '#6f6f6f'
+    group: vegetation
+  scree:
+    zoom: 16
+    sign: ''
+    color: '#6f6f6f'
+    group: vegetation
+  shingle:
+    zoom: 16
+    sign: ''
+    color: '#6f6f6f'
+    group: vegetation
+  sand:
+    zoom: 16
+    sign: ''
+    color: '#f9d199'
+    group: vegetation
+  mud:
+    zoom: 16
+    sign: <img data-src='maki:wetland?fill=white'>
+    color: '#988b00'
+    group: vegetation
+  wetland:
+    zoom: 16
+    sign: <img data-src='maki:wetland?fill=white'>
+    color: '#00baff'
+    group: water
+  glacier:
+    zoom: 13
+    sign: '<i style="color: black;" class="fas fa-icicles"></i>'
+    color: white
+    group: water
+  cape:
+    zoom: 13
+    sign: ''
+    color: '#1d7500'
+    group: water
+  peninsula:
+    zoom: 13
+    sign: ''
+    color: '#1d7500'
+    group: water
+  beach:
+    zoom: 13
+    sign: <i class='fas fa-umbrella-beach'></i>
+    color: '#ff7f50'
+    group: water
+  coastline:
+    zoom: 13
+    sign: ''
+    color: blue
+    group: water
+  reef:
+    zoom: 13
+    sign: ''
+    color: '#005fbd'
+    group: water
+  peak:
+    zoom: 9
+    sign: <i class='fas fa-mountain'></i>
+    color: '#4f4f4f'
+    group: landform
+  hill:
+    zoom: 13
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  volcano:
+    zoom: 9
+    sign: <i class='fas fa-mountain'></i>
+    color: '#cf3a00'
+    group: landform
+  valley:
+    zoom: 9
+    sign: ''
+    color: '#1d7500'
+    group: landform
+  river_terrace:
+    zoom: 16
+    sign: ''
+    color: '#a0a500'
+    group: landform
+  ridge:
+    zoom: 13
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  arete:
+    zoom: 13
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  cliff:
+    zoom: 16
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  saddle:
+    zoom: 13
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  rock:
+    zoom: 16
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  stone:
+    zoom: 16
+    sign: ''
+    color: '#4f4f4f'
+    group: landform
+  sinkhole:
+    zoom: 13
+    sign: ''
+    color: '#a0a500'
+    group: landform
+  cave_entrance:
+    zoom: 13
+    sign: ''
+    color: '#000000'
+    group: landform
+  isthmus:
+    zoom: 13
+    sign: ''
+    color: '#1d7500'
+    group: landform
+info: |-
+  <table>
+    {% for k, data in const %}
+      {% if data.zoom <= map.zoom %}
+      <tr>
+        <td>
+          {{ markerCircle({ fillColor: data.color })|raw }}<div class='sign'>{{ data.sign|raw }}</div>
+        </td>
+        <td>{{ tagTrans('natural', k) }}</td>
+      </tr>
+      {% endif %}
+    {% endfor %}
+  </table>
diff --git a/places.json b/places.json
deleted file mode 100644
index 29f27ce..0000000
--- a/places.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-    "type": "overpass",
-    "name": {
-        "ast": "Llugares",
-        "ca": "Llocs",
-        "cs": "Sídla",
-        "de": "Orte",
-        "el": "Μέρη",
-        "en": "Places",
-        "es": "Lugares",
-        "et": "Kohad",
-        "fr": "Lieux",
-        "gl": "Lugares",
-        "hu": "Helyek",
-        "it": "Luoghi",
-        "ja": "場所",
-        "nb": "Steder",
-        "nl": "Plaatsen",
-        "oc": "Luòcs",
-        "pl": "Miejsca",
-        "pt": "Lugares",
-        "pt-br": "Lugares",
-        "ro": "Locuri",
-        "ru": "Места",
-        "sr": "Места",
-        "tr": "Yerler",
-        "uk": "Місцевість"
-    },
-    "query": {
-        "0": "node[place~'^(continent)$']",
-        "4": "node[place~'^(continent|country)$']",
-        "6": "node[place~'^(country|city)$']",
-        "8": "node[place~'^(country|city|state)$']",
-        "11": "node[place~'^(city|state|region|town|village)$']",
-        "13": "node[place~'^(city|state|region|town|village|suburb|hamlet|quarter)$']",
-        "15": "node[place~'^(city|region|town|village|suburb|hamlet|quarter)$']",
-        "16": "(node[place~'^(region|town|village|suburb|hamlet|quarter|islet|isolated_dwelling|neighbourhood|farm)$'];way[place~'^(isolated_dwelling|neighbourhood|farm)$'];relation[place~'^(isolated_dwelling|neighbourhood|farm)$'];);"
-    },
-    "feature": {
-        "title": "{% set loc_name = localizedTag(tags, 'name') %}{{ loc_name }}{% if loc_name != tags.name %} ({{ tags.name }}){% endif %}",
-        "description": "{{ tagTrans('place', tags.place) }}",
-        "body": "{% if tags.population %}{{ keyTrans('population') }}: {{ tags.population }}{% endif %}",
-        "priority": "{% set priorities = { 'continent': 0, 'country': 1, 'state': 2, 'region': 3, 'city': 4, 'town': 5, 'village': 6, 'suburb': 7, 'hamlet': 8, 'quarter': 9, neighbourhood: 10, 'isolated_dwelling': 11, 'farm': 12 } %}{{ priorities[tags.place] }}"
-    },
-    "filter": {
-        "name": {
-            "key": [
-                "name",
-                "name:*"
-            ],
-            "name": "{{ keyTrans('name') }}",
-            "type": "text",
-            "change_on": "keyup",
-            "op": "strsearch"
-        }
-    }
-}
diff --git a/places.yaml b/places.yaml
new file mode 100644
index 0000000..03e66f9
--- /dev/null
+++ b/places.yaml
@@ -0,0 +1,54 @@
+type: overpass
+name:
+  ast: Llugares
+  ca: Llocs
+  cs: Sídla
+  de: Orte
+  el: Μέρη
+  en: Places
+  es: Lugares
+  et: Kohad
+  fr: Lieux
+  gl: Lugares
+  hu: Helyek
+  it: Luoghi
+  ja: 場所
+  nb: Steder
+  nl: Plaatsen
+  oc: Luòcs
+  pl: Miejsca
+  pt: Lugares
+  pt-br: Lugares
+  ro: Locuri
+  ru: Места
+  sr: Места
+  tr: Yerler
+  uk: Місцевість
+query:
+  0: node[place~'^(continent)$']
+  4: node[place~'^(continent|country)$']
+  6: node[place~'^(country|city)$']
+  8: node[place~'^(country|city|state)$']
+  11: node[place~'^(city|state|region|town|village)$']
+  13: node[place~'^(city|state|region|town|village|suburb|hamlet|quarter)$']
+  15: node[place~'^(city|region|town|village|suburb|hamlet|quarter)$']
+  16: (node[place~'^(region|town|village|suburb|hamlet|quarter|islet|isolated_dwelling|neighbourhood|farm)$'];way[place~'^(isolated_dwelling|neighbourhood|farm)$'];relation[place~'^(isolated_dwelling|neighbourhood|farm)$'];);
+feature:
+  title: |-
+    {% set loc_name = localizedTag(tags, "name") %}{{ loc_name }}{% if loc_name != tags.name %} ({{ tags.name }}){% endif %}
+  description: |-
+    {{ tagTrans("place", tags.place) }}
+  body: |-
+    {% if tags.population %}{{ keyTrans("population") }}: {{ tags.population }}{% endif %}
+  priority: |-
+    {% set priorities = { "continent": 0, "country": 1, "state": 2, "region": 3, "city": 4, "town": 5, "village": 6, "suburb": 7, "hamlet": 8, "quarter": 9, neighbourhood: 10, "isolated_dwelling": 11, "farm": 12 } %}{{ priorities[tags.place] }}
+filter:
+  name:
+    key:
+      - name
+      - name:*
+    name: |-
+      {{ keyTrans("name") }}
+    type: text
+    change_on: keyup
+    op: strsearch
diff --git a/residential.json b/residential.json
deleted file mode 100644
index 8e42c42..0000000
--- a/residential.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-    "type": "overpass",
-    "name": {
-        "ast": "Zones residenciales",
-        "ca": "Àrees Residencials",
-        "cs": "Obytné oblasti",
-        "de": "Wohngebiete",
-        "el": "Περιοχές Κατοικίας",
-        "en": "Residential Areas",
-        "es": "Áreas residenciales",
-        "et": "Elamupiirkonnad",
-        "fr": "Zones résidentielles",
-        "gl": "Zonas residenciais",
-        "hu": "Lakóövezetek",
-        "it": "Aree residenziali",
-        "ja": "住居エリア",
-        "nb": "Boligområder",
-        "nl": "Woongebieden",
-        "oc": "Quartiers residenciaus",
-        "pl": "Obszary zamieszkania",
-        "pt": "Áreas residenciais",
-        "pt-br": "Áreas residenciais",
-        "ro": "Zona rezidentiala",
-        "ru": "Жилые районы",
-        "sr": "Стамбена подручја",
-        "tr": "Yerleşim Alanları",
-        "uk": "Житлова зона"
-    },
-    "query": {
-        "13": [
-            "(",
-            "node[landuse~\"^(residential)$\"];",
-            "way[landuse~\"^(residential)$\"];",
-            "relation[landuse~\"^(residential)$\"];",
-            ")"
-        ],
-        "15": [
-            "(",
-            "node[landuse~\"^(residential|allotments)$\"];",
-            "way[landuse~\"^(residential|allotments)$\"];",
-            "relation[landuse~\"^(residential|allotments)$\"];",
-            ")"
-        ]
-    },
-    "feature": {
-        "description": [
-            "{{ tagTrans('landuse', tags.landuse) }}",
-            "",
-            "{% if tags.residential %}",
-            "({{ tagTransList('residential', tags.residential) }})",
-            "{% endif %}"
-        ]
-    }
-}
diff --git a/residential.yaml b/residential.yaml
new file mode 100644
index 0000000..8be3cf6
--- /dev/null
+++ b/residential.yaml
@@ -0,0 +1,46 @@
+type: overpass
+name:
+  ast: Zones residenciales
+  ca: Àrees Residencials
+  cs: Obytné oblasti
+  de: Wohngebiete
+  el: Περιοχές Κατοικίας
+  en: Residential Areas
+  es: Áreas residenciales
+  et: Elamupiirkonnad
+  fr: Zones résidentielles
+  gl: Zonas residenciais
+  hu: Lakóövezetek
+  it: Aree residenziali
+  ja: 住居エリア
+  nb: Boligområder
+  nl: Woongebieden
+  oc: Quartiers residenciaus
+  pl: Obszary zamieszkania
+  pt: Áreas residenciais
+  pt-br: Áreas residenciais
+  ro: Zona rezidentiala
+  ru: Жилые районы
+  sr: Стамбена подручја
+  tr: Yerleşim Alanları
+  uk: Житлова зона
+query:
+  13: |-
+    (
+    node[landuse~"^(residential)$"];
+    way[landuse~"^(residential)$"];
+    relation[landuse~"^(residential)$"];
+    )
+  15: |-
+    (
+    node[landuse~"^(residential|allotments)$"];
+    way[landuse~"^(residential|allotments)$"];
+    relation[landuse~"^(residential|allotments)$"];
+    )
+feature:
+  description: |-
+    {{ tagTrans('landuse', tags.landuse) }}
+
+    {% if tags.residential %}
+    ({{ tagTransList('residential', tags.residential) }})
+    {% endif %}
diff --git a/water.json b/water.json
deleted file mode 100644
index ec1a713..0000000
--- a/water.json
+++ /dev/null
@@ -1,283 +0,0 @@
-{
-    "type": "overpass",
-    "name": {
-        "ca": "Cossos d'aigua",
-        "cs": "Vodní plochy",
-        "de": "Gewässer",
-        "en": "Waterbodies",
-        "es": "Cuerpos de agua",
-        "fr": "Hydrographie",
-        "gl": "Hidrografía",
-        "hu": "Vizek",
-        "it": "Masse d'acqua",
-        "ja": "水系",
-        "nb": "Vannflater",
-        "nl": "Oppervlaktewater",
-        "oc": "Aigas e rius",
-        "pl": "Wodne",
-        "pt": "Massas de água",
-        "pt-br": "Hidrografia",
-        "ru": "Водоемы",
-        "sr": "Водене површине",
-        "tr": "Su kütleleri"
-    },
-    "query": {
-        "10": [
-            "(",
-            "way[waterway~\"^(river|canal)$\"];",
-            "nwr[natural~\"^(divide|bay|strait)$\"];",
-            "way[natural=water][water~\"^(lake|lagoon|reservoir|canal)$\"];",
-            "relation[natural=water][type=multipolygon][water~\"^(lake|lagoon|reservoir|canal)$\"];",
-            ")"
-        ],
-        "13": [
-            "(",
-            "nwr[natural~\"^(water|divide|bay|strait|spring|hot_spring|geyser)$\"];",
-            "relation[type=multipolygon][natural=water];",
-            "relation[type=multipolygon][waterway=riverbank];",
-            "nwr[waterway];",
-            ")"
-        ]
-    },
-    "feature": {
-        "pre": [
-            "{% if tags.waterway %}",
-            "  {% set key = 'waterway' %}",
-            "  {% set value = tags.waterway %}",
-            "{% elseif tags.water %}",
-            "  {% set key = 'water' %}",
-            "  {% set value = tags.water %}",
-            "{% elseif tags.natural %}",
-            "  {% set key = 'natural' %}",
-            "  {% set value = tags.natural %}",
-            "{% endif %}",
-            "{% set kv = key ~ '=' ~ value %}",
-            "{% set data = const[kv]|default(const['natural=water']) %}"
-        ],
-        "description": [
-            "{{ tagTrans(key, value) }}"
-        ],
-        "body": [
-            "<ul>",
-            "{% if tags.intermittent %}",
-            "  <li class='hasSymbol'>",
-            "   <i class=\"far fa-circle\"></i>",
-            "   <span class='key'>{{ keyTrans('intermittent') }}:</span>",
-            "   <span class='value'>{{ tagTrans('intermittent', tags.intermittent) }}</span>",
-            "{% endif %}",
-            "</ul>"
-        ],
-        "markerSign": [
-            "{{ const[kv].sign|raw }}"
-        ],
-        "markerSymbol": [
-            "{% if data.symbol == 'pointer' %}",
-            "{{ markerPointer({ fillColor: '#3388ff' })|raw }}",
-            "{% endif %}"
-        ],
-        "listMarkerSymbol": [
-            "{% if data.symbol == 'pointer' %}",
-            "{{ markerCircle({ fillColor: '#3388ff' })|raw }}",
-            "{% elseif data.symbol == 'polygon' %}",
-            "polygon",
-            "{% else %}",
-            "line",
-            "{% endif %}"
-        ],
-        "priority": "{{ data.priority }}",
-        "style": {
-            "width": "{{ data.style.width }}",
-            "color": "{{ data.style.color }}",
-            "text": [
-                "{% if data.text %}",
-                "{{ tags.name }}   ➔   ",
-                "{% endif %}"
-            ],
-            "textRepeat": "1",
-            "dashArray": "{% if tags.intermittent == 'yes' %}5,5{% endif %}",
-            "lineCap": "{% if tags.intermittent == 'yes' %}butt{% else %}round{% endif %}"
-        }
-    },
-    "const": {
-        "natural=water": {
-            "zoom": 10,
-            "symbol": "polygon",
-            "style": {
-                "width": 3,
-                "color": "#3388ff"
-            },
-            "priority": 2
-        },
-        "water=lake": {
-            "zoom": 10,
-            "symbol": "polygon",
-            "style": {
-                "width": 3,
-                "color": "#3388ff"
-            },
-            "hideInfo": true,
-            "priority": 0
-        },
-        "water=lagoon": {
-            "zoom": 10,
-            "symbol": "polygon",
-            "style": {
-                "width": 3,
-                "color": "#3388ff"
-            },
-            "hideInfo": true,
-            "priority": 0
-        },
-        "water=reservoir": {
-            "zoom": 10,
-            "symbol": "polygon",
-            "style": {
-                "width": 3,
-                "color": "#3388ff"
-            },
-            "hideInfo": true,
-            "priority": 0
-        },
-        "waterway=river": {
-            "zoom": 10,
-            "symbol": "line",
-            "style": {
-                "width": 4,
-                "color": "#3388ff"
-            },
-            "text": true,
-            "priority": 1
-        },
-        "waterway=canal": {
-            "alias": [
-                "water=canal"
-            ],
-            "zoom": 10,
-            "symbol": "line",
-            "style": {
-                "width": 4,
-                "color": "#3388ff"
-            },
-            "text": true,
-            "priority": 1
-        },
-        "waterway=stream": {
-            "zoom": 13,
-            "symbol": "line",
-            "style": {
-                "width": 2,
-                "color": "#3388ff"
-            },
-            "text": true,
-            "priority": 3
-        },
-        "waterway=drain": {
-            "zoom": 13,
-            "symbol": "line",
-            "style": {
-                "width": 2,
-                "color": "#3388ff"
-            },
-            "text": true,
-            "priority": 3
-        },
-        "waterway=ditch": {
-            "zoom": 13,
-            "symbol": "line",
-            "style": {
-                "width": 1,
-                "color": "#3388ff"
-            },
-            "text": true,
-            "priority": 5
-        },
-        "natural=spring": {
-            "sign": "<i class='fas fa-water'></i>",
-            "zoom": 13,
-            "symbol": "pointer"
-        },
-        "natural=hot_spring": {
-            "sign": "<i style='color: orange;' class='fas fa-water'></i>",
-            "zoom": 13,
-            "symbol": "pointer"
-        },
-        "natural=geyser": {
-            "sign": "<i style='color: red;' class='fas fa-water'></i>",
-            "zoom": 13,
-            "symbol": "pointer"
-        },
-        "waterway=waterfall": {
-            "sign": "<img data-src='maki:waterfall'>",
-            "zoom": 13,
-            "symbol": "pointer"
-        },
-        "waterway=dam": {
-            "zoom": 13,
-            "symbol": "line",
-            "style": {
-                "width": 3,
-                "color": "#000000"
-            },
-            "priority": 3
-        },
-        "waterway=weir": {
-            "zoom": 13,
-            "symbol": "line",
-            "style": {
-                "width": 3,
-                "color": "#000000"
-            },
-            "priority": 3
-        },
-        "natural=divide": {
-            "zoom": 10,
-            "symbol": "line",
-            "style": {
-                "width": 3,
-                "color": "#ff0000"
-            },
-            "text": true,
-            "priority": 0
-        }
-    },
-    "filter": {
-        "type": {
-            "name": "{{ trans('filter:type') }}",
-            "key": "natural",
-            "type": "select",
-            "show_default": "true",
-            "values": "{% for k, data in const %}<option value=\"{{ k }}\" query=\"(nwr[{{ k }}];{% for a in data.alias %}nwr[{{ a }}];{% endfor %})\">{{ tagTrans(k) }}</option>{% endfor %}",
-            "sort": "natsort"
-        },
-        "intermittent": {
-            "name": "{{ keyTrans('intermittent') }}",
-            "key": "intermittent",
-            "type": "radio",
-            "values": "<option value='yes' query=\"nwr[intermittent][intermittent!=no]\">{{ tagTrans('intermittent', 'yes') }}</option><option value='no' query=\"(nwr[!intermittent];nwr[intermittent=no];)\">{{ tagTrans('intermittent', 'no') }}</option>"
-        }
-    },
-    "info": [
-        "<table>",
-        "  {% for k, data in const %}",
-        "    {% if not data.hideInfo and data.zoom <= map.zoom %}",
-        "    <tr>",
-        "      <td>",
-        "      {% if data.symbol == 'pointer' %}",
-        "        {{ markerCircle({ fillColor: '#3388ff' })|raw }}<div class='sign'>{{ data.sign|raw }}</div>",
-        "      {% elseif data.symbol == 'polygon' %}",
-        "        {{ markerPolygon(data.style)|raw }}",
-        "      {% elseif data.symbol == 'line' %}",
-        "        {{ markerLine(data.style)|raw }}",
-        "      {% endif %}",
-        "      </td>",
-        "      <td>{{ tagTrans(k) }}</td>",
-        "    </tr>",
-        "    {% endif %}",
-        "  {% endfor %}",
-        "  <tr>",
-        "    <td>{{ markerLine({ width: 3, color: '#3388ff', dashArray: '5,5', lineCap: 'butt' })|raw }}</td>",
-        "    <td>{{ keyTrans('intermittent') }}</td>",
-        "  </tr>",
-        "</table>"
-    ]
-}
diff --git a/water.yaml b/water.yaml
new file mode 100644
index 0000000..c39a95a
--- /dev/null
+++ b/water.yaml
@@ -0,0 +1,239 @@
+type: overpass
+name:
+  ca: Cossos d'aigua
+  cs: Vodní plochy
+  de: Gewässer
+  en: Waterbodies
+  es: Cuerpos de agua
+  fr: Hydrographie
+  gl: Hidrografía
+  hu: Vizek
+  it: Masse d'acqua
+  ja: 水系
+  nb: Vannflater
+  nl: Oppervlaktewater
+  oc: Aigas e rius
+  pl: Wodne
+  pt: Massas de água
+  pt-br: Hidrografia
+  ru: Водоемы
+  sr: Водене површине
+  tr: Su kütleleri
+query:
+  10: |-
+    (
+    way[waterway~"^(river|canal)$"];
+    nwr[natural~"^(divide|bay|strait)$"];
+    way[natural=water][water~"^(lake|lagoon|reservoir|canal)$"];
+    relation[natural=water][type=multipolygon][water~"^(lake|lagoon|reservoir|canal)$"];
+    )
+  13: |-
+    (
+    nwr[natural~"^(water|divide|bay|strait|spring|hot_spring|geyser)$"];
+    relation[type=multipolygon][natural=water];
+    relation[type=multipolygon][waterway=riverbank];
+    nwr[waterway];
+    )
+feature:
+  pre: |-
+    {% if tags.waterway %}
+      {% set key = 'waterway' %}
+      {% set value = tags.waterway %}
+    {% elseif tags.water %}
+      {% set key = 'water' %}
+      {% set value = tags.water %}
+    {% elseif tags.natural %}
+      {% set key = 'natural' %}
+      {% set value = tags.natural %}
+    {% endif %}
+    {% set kv = key ~ '=' ~ value %}
+    {% set data = const[kv]|default(const['natural=water']) %}
+  description: |-
+    {{ tagTrans(key, value) }}
+  body: |-
+    <ul>
+    {% if tags.intermittent %}
+      <li class='hasSymbol'>
+       <i class="far fa-circle"></i>
+       <span class='key'>{{ keyTrans('intermittent') }}:</span>
+       <span class='value'>{{ tagTrans('intermittent', tags.intermittent) }}</span>
+    {% endif %}
+    </ul>
+  markerSign: |-
+    {{ const[kv].sign|raw }}
+  markerSymbol: |-
+    {% if data.symbol == 'pointer' %}
+    {{ markerPointer({ fillColor: '#3388ff' })|raw }}
+    {% endif %}
+  listMarkerSymbol: |-
+    {% if data.symbol == 'pointer' %}
+    {{ markerCircle({ fillColor: '#3388ff' })|raw }}
+    {% elseif data.symbol == 'polygon' %}
+    polygon
+    {% else %}
+    line
+    {% endif %}
+  priority: '{{ data.priority }}'
+  style:
+    width: '{{ data.style.width }}'
+    color: '{{ data.style.color }}'
+    text: |-
+      {% if data.text %}
+      {{ tags.name }}   ➔   
+      {% endif %}
+    textRepeat: '1'
+    dashArray: |-
+      {% if tags.intermittent == "yes" %}5,5{% endif %}
+    lineCap: |-
+      {% if tags.intermittent == "yes" %}butt{% else %}round{% endif %}
+const:
+  natural=water:
+    zoom: 10
+    symbol: polygon
+    style:
+      width: 3
+      color: '#3388ff'
+    priority: 2
+  water=lake:
+    zoom: 10
+    symbol: polygon
+    style:
+      width: 3
+      color: '#3388ff'
+    hideInfo: true
+    priority: 0
+  water=lagoon:
+    zoom: 10
+    symbol: polygon
+    style:
+      width: 3
+      color: '#3388ff'
+    hideInfo: true
+    priority: 0
+  water=reservoir:
+    zoom: 10
+    symbol: polygon
+    style:
+      width: 3
+      color: '#3388ff'
+    hideInfo: true
+    priority: 0
+  waterway=river:
+    zoom: 10
+    symbol: line
+    style:
+      width: 4
+      color: '#3388ff'
+    text: true
+    priority: 1
+  waterway=canal:
+    alias:
+      - water=canal
+    zoom: 10
+    symbol: line
+    style:
+      width: 4
+      color: '#3388ff'
+    text: true
+    priority: 1
+  waterway=stream:
+    zoom: 13
+    symbol: line
+    style:
+      width: 2
+      color: '#3388ff'
+    text: true
+    priority: 3
+  waterway=drain:
+    zoom: 13
+    symbol: line
+    style:
+      width: 2
+      color: '#3388ff'
+    text: true
+    priority: 3
+  waterway=ditch:
+    zoom: 13
+    symbol: line
+    style:
+      width: 1
+      color: '#3388ff'
+    text: true
+    priority: 5
+  natural=spring:
+    sign: <i class='fas fa-water'></i>
+    zoom: 13
+    symbol: pointer
+  natural=hot_spring:
+    sign: '<i style="color: orange;" class="fas fa-water"></i>'
+    zoom: 13
+    symbol: pointer
+  natural=geyser:
+    sign: '<i style="color: red;" class="fas fa-water"></i>'
+    zoom: 13
+    symbol: pointer
+  waterway=waterfall:
+    sign: <img data-src='maki:waterfall'>
+    zoom: 13
+    symbol: pointer
+  waterway=dam:
+    zoom: 13
+    symbol: line
+    style:
+      width: 3
+      color: '#000000'
+    priority: 3
+  waterway=weir:
+    zoom: 13
+    symbol: line
+    style:
+      width: 3
+      color: '#000000'
+    priority: 3
+  natural=divide:
+    zoom: 10
+    symbol: line
+    style:
+      width: 3
+      color: '#ff0000'
+    text: true
+    priority: 0
+filter:
+  type:
+    name: |-
+      {{ trans("filter:type") }}
+    key: natural
+    type: select
+    show_default: 'true'
+    values: |-
+      {% for k, data in const %}<option value="{{ k }}" query="(nwr[{{ k }}];{% for a in data.alias %}nwr[{{ a }}];{% endfor %})">{{ tagTrans(k) }}</option>{% endfor %}
+    sort: natsort
+  intermittent:
+    name: |-
+      {{ keyTrans("intermittent") }}
+    key: intermittent
+    type: radio
+    values: <option value='yes' query="nwr[intermittent][intermittent!=no]">{{ tagTrans('intermittent', 'yes') }}</option><option value='no' query="(nwr[!intermittent];nwr[intermittent=no];)">{{ tagTrans('intermittent', 'no') }}</option>
+info: |-
+  <table>
+    {% for k, data in const %}
+      {% if not data.hideInfo and data.zoom <= map.zoom %}
+      <tr>
+        <td>
+        {% if data.symbol == 'pointer' %}
+          {{ markerCircle({ fillColor: '#3388ff' })|raw }}<div class='sign'>{{ data.sign|raw }}</div>
+        {% elseif data.symbol == 'polygon' %}
+          {{ markerPolygon(data.style)|raw }}
+        {% elseif data.symbol == 'line' %}
+          {{ markerLine(data.style)|raw }}
+        {% endif %}
+        </td>
+        <td>{{ tagTrans(k) }}</td>
+      </tr>
+      {% endif %}
+    {% endfor %}
+    <tr>
+      <td>{{ markerLine({ width: 3, color: '#3388ff', dashArray: '5,5', lineCap: 'butt' })|raw }}</td>
+      <td>{{ keyTrans('intermittent') }}</td>
+    </tr>
+  </table>