diff --git a/car_maxspeed.json b/car_maxspeed.json
index b2249f3..6c11f5a 100644
--- a/car_maxspeed.json
+++ b/car_maxspeed.json
@@ -16,36 +16,67 @@
     },
     "feature": {
         "pre": [
-            "{% if tags.maxspeed is not defined %}",
             "{% set maxspeedKmh = null %}",
             "{% set maxspeed = null %}",
             "{% set unit = null %}",
-            "{% else %}",
             "",
-            "{% if tags.maxspeed|matches(\"^[0-9]+$\") %}",
-            "{% set maxspeedKmh = tags.maxspeed %}",
-            "{% set maxspeed = tags.maxspeed %}",
-            "{% set unit = \"km/h\" %}",
+            "{% if tags.maxspeed is defined %}",
+            "  {% if tags.maxspeed|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedKmh = tags.maxspeed %}",
+            "    {% set maxspeed = tags.maxspeed %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif tags.maxspeed|matches( \"(^[0-9]+) mph$\") %}",
+            "    {% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeed = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
-            "",
-            "{% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}",
-            "{% if m %}",
-            "{% set maxspeedKmh = m[1] * 1.60934 %}",
-            "{% set maxspeed = m[1] %}",
-            "{% set unit = \"mph\" %}",
+            "{% if attribute(tags, 'maxspeed:forward') is defined %}",
+            "  {% if attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedFKmh = attribute(tags, 'maxspeed:forward') %}",
+            "    {% set maxspeedF = attribute(tags, 'maxspeed:forward') %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+ mph$\") %}",
+            "    {% set m = attribute(tags, 'maxspeed:forward')|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedFKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeedF = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
+            "{% if attribute(tags, 'maxspeed:backward') is defined %}",
+            "  {% if attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedBKmh = attribute(tags, 'maxspeed:backward') %}",
+            "    {% set maxspeedB = attribute(tags, 'maxspeed:backward') %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+ mph$\") %}",
+            "    {% set m = attribute(tags, 'maxspeed:backward')|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedBKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeedB = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
             "{% if not maxspeedKmh %}",
             "{% set color = \"#404040\" %}",
             "{% else %}",
             "{% set color = colorInterpolate(const.colorMap, (maxspeedKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
+            "{% endif %}",
+            "",
+            "{% if maxspeedFKmh %}",
+            "{% set colorF = colorInterpolate(const.colorMap, (maxspeedFKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
+            "{% endif %}",
+            "",
+            "{% if maxspeedBKmh %}",
+            "{% set colorB = colorInterpolate(const.colorMap, (maxspeedBKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
             "{% endif %}"
         ],
         "description": [
-            "{% if maxspeed %}",
+            "{% if maxspeedF or maxspeedB %}",
+            "<span style='color: {{ colorB }}'>{{ maxspeedB|default(trans('unknown')) }}</span> / <span style='color: {{ colorF }}'>{{ maxspeedF|default(trans('unknown')) }}</span> {{ unit }}",
+            "{% elseif maxspeed %}",
             "<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>",
             "{% elseif tags.maxspeed %}",
             "{{ tags.maxspeed }}",
@@ -53,14 +84,32 @@
             "{{ trans('unknown') }}",
             "{% endif %}"
         ],
-        "markerSymbol": null,
+        "markerSymbol": "",
         "listMarkerSymbol": "line",
+        "styles": "{% if maxspeedB or maxspeedF %}left,right,default{% else %}default{% endif %}",
         "style": {
-            "width": "3",
+            "width": "{% if maxspeedB or maxspeedF %}0{% else %}4{% endif %}",
             "color": "{{ color }}",
-            "text": "{{ maxspeed }}           ",
+            "text": [
+                "{% if maxspeedB or maxspeedF %}",
+                "  {% if maxspeedB %}🡸 {{ maxspeedB }} {% endif %}|{% if maxspeedF %} {{ maxspeedF }} 🡺{% endif %}       ",
+                "{% else %}",
+                "  {{ maxspeed }}         ",
+                "{% endif %}"
+            ],
             "textRepeat": "1",
+            "textOffset": "4",
             "textFontWeight": "bold"
+        },
+        "style:left": {
+            "width": "2",
+            "color": "{{ colorB|default('#404040') }}",
+            "offset": "-1"
+        },
+        "style:right": {
+            "width": "2",
+            "color": "{{ colorF|default('#404040') }}",
+            "offset": "1"
         }
     },
     "const": {
diff --git a/coal.json b/coal.json
index d084cae..3b044d0 100644
--- a/coal.json
+++ b/coal.json
@@ -4,6 +4,7 @@
         "de": "Kohle",
         "en": "Coal",
         "fr": "Charbon",
+        "hu": "Kőszén",
         "pt-br": "Carvão"
     },
     "query": {
diff --git a/emergency.json b/emergency.json
index 64ef840..73b606d 100644
--- a/emergency.json
+++ b/emergency.json
@@ -34,6 +34,7 @@
             "way[amenity~\"^(fire_station|hospital|police)$\"];",
             "relation[amenity~\"^(fire_station|hospital|police)$\"];",
             "node[emergency~\"^(phone)$\"];",
+            "node[highway=emergency_access_point];",
             ")"
         ]
     },
@@ -45,6 +46,9 @@
             "{% elseif tags.emergency %}",
             "{% set key = 'emergency' %}",
             "{% set value = tags.emergency %}",
+            "{% elseif tags.highway == 'emergency_access_point' %}",
+            "{% set key = 'highway' %}",
+            "{% set value = tags.highway %}",
             "{% endif %}",
             "{% set kv = key ~ \"=\" ~ value %}"
         ],
@@ -52,16 +56,18 @@
         "markerSign": [
             "{% set data = const[kv] %}",
             "{% if data %}",
-            "{{ data.sign }}",
+            "{{ data.sign|raw }}",
             "{% endif %}"
-        ]
+        ],
+        "markerSymbol": "{{ markerPointer({ fillColor: data.background|default('#f27f6a') })|raw }}",
+        "listMarkerSymbol": "{{ markerCircle({ fillColor: data.background|default('#f27f6a') })|raw }}"
     },
     "info": [
         "<table>",
         "{% for value, data in const %}",
         "{% if data.zoom <= map.zoom %}",
         "  <tr>",
-        "    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign }}</div></td>",
+        "    <td>{{ markerCircle({ fillColor: data.background|default('#f27f6a') })|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
         "    <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>",
         "  </tr>",
         "{% endif %}",
@@ -84,6 +90,11 @@
         "emergency=phone": {
             "zoom": "13",
             "sign": "📞"
+        },
+        "highway=emergency_access_point": {
+            "zoom": "13",
+            "sign": "<img data-src='maki:hospital?fill=white'>",
+            "background": "#009262"
         }
     }
 }
diff --git a/index.json b/index.json
index 77bd73e..c2be5f1 100644
--- a/index.json
+++ b/index.json
@@ -262,7 +262,8 @@
                         "en": "Energy",
                         "de": "Energie",
                         "pt-br": "Energia",
-                        "fr": "Énergie"
+                        "fr": "Énergie",
+                        "hu": "Energiaellátás"
                     },
                     "subCategories": [
                         {
diff --git a/lang/hu.json b/lang/hu.json
index b188f7a..f4f5e7f 100644
--- a/lang/hu.json
+++ b/lang/hu.json
@@ -9,7 +9,7 @@
     "category:car_maxspeed": "Sebességkorlátozás",
     "category:car_routes": "Főútvonalak",
     "category:children": "Gyermekek",
-    "category:coal": "",
+    "category:coal": "Kőszén",
     "category:communication": "Kommunikácó",
     "category:construction": "Építési terület",
     "category:craft": "Műhelyek",
@@ -20,7 +20,7 @@
     "category:education": "Oktatás",
     "category:electric_power": "Áramellátás",
     "category:emergency": "Vészhelyzet",
-    "category:energy": "",
+    "category:energy": "Energiaellátás",
     "category:financial": "Pénzügyek",
     "category:gastro": "Vendéglátás",
     "category:gastro-smoking": "Nem dohányzó vendéglátóhelyek",
@@ -32,12 +32,12 @@
     "category:internet": "Internetcsatlakozás",
     "category:leisure": "Szabadidő",
     "category:leisure_sport_shopping": "Szabadidő, sport és vásárlás",
-    "category:memorial": "",
+    "category:memorial": "Emlékművek",
     "category:military": "Katonai objektumok",
     "category:mtb-routes": "Hegyikerékpáros útvonalak",
     "category:natural": "Természeti képződmények",
-    "category:office": "",
-    "category:oil_gas": "",
+    "category:office": "Irodák, hivatalok",
+    "category:oil_gas": "Kőolaj, földgáz",
     "category:other": "Egyéb",
     "category:outdoor": "Szabadtéri tevékenységek",
     "category:phone": "Telefon",
@@ -45,7 +45,7 @@
     "category:places_geo": "Helyek",
     "category:playgrounds": "Játszóterek",
     "category:post": "Posta",
-    "category:power_routes": "",
+    "category:power_routes": "Távvezetékek",
     "category:pt": "Tömegközlekedési térkép",
     "category:pt:routes": "Útvonalak",
     "category:pt:stops": "Megállók és állomások",
@@ -57,16 +57,16 @@
     "category:railway-maxspeed": "Sebességkorlátozás",
     "category:railway-routes": "Vasútvonalak",
     "category:religion": "Vallás",
-    "category:renewables": "",
+    "category:renewables": "Megújuló energia",
     "category:residential": "Lakóövezetek",
     "category:resources": "Bányászat",
     "category:services": "Szolgáltatások",
     "category:shop": "Vásárlás",
     "category:special": "Speciális",
     "category:sport": "Sport",
-    "category:swimming_bathing": "",
+    "category:swimming_bathing": "Fürdőzés, úszás",
     "category:tourism_attractions": "Látnivalók",
-    "category:tourism_services": "Turisztikai szolgáltatások",
+    "category:tourism_services": "Szálláshelyek, turisztikai információk",
     "category:transport": "Közlekedés",
     "category:transport_alternative": "Alternatív (Kerékpár, Túra)",
     "category:transport_car": "Autós közlekedés",
@@ -78,5 +78,5 @@
     "category:water": "Vizek",
     "category:wikipedia": "Wikipédia",
     "category:works": "Üzemek",
-    "category:xmas": ""
+    "category:xmas": "Karácsony"
 }
diff --git a/lang/pt-br.json b/lang/pt-br.json
index 04af446..cbafd23 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -36,7 +36,7 @@
     "category:military": "Militar",
     "category:mtb-routes": "Rotas de mountain bike",
     "category:natural": "Formações naturais",
-    "category:office": "",
+    "category:office": "Escritórios e agências",
     "category:oil_gas": "Petróleo e gás",
     "category:other": "Outros",
     "category:outdoor": "Atividades ao ar livre",
@@ -45,12 +45,12 @@
     "category:places_geo": "Lugares",
     "category:playgrounds": "Parquinhos",
     "category:post": "Correios",
-    "category:power_routes": "",
+    "category:power_routes": "Rotas de energia",
     "category:pt": "Mapa de transporte público",
     "category:pt:routes": "Rotas",
     "category:pt:stops": "Paradas e estações",
     "category:pt_amenities": "Equipamentos",
-    "category:public": "Serviços públicos",
+    "category:public": "Utilidade pública",
     "category:railway": "Ferrovia",
     "category:railway-electrification": "Eletrificação ferroviária",
     "category:railway-infrastructure": "Infraestrutura ferroviária",
@@ -64,9 +64,9 @@
     "category:shop": "Compras",
     "category:special": "Especial",
     "category:sport": "Esportes",
-    "category:swimming_bathing": "",
+    "category:swimming_bathing": "Natação e banho",
     "category:tourism_attractions": "Turismo",
-    "category:tourism_services": "Serviços de turismo",
+    "category:tourism_services": "Serviços turísticos",
     "category:transport": "Mobilidade",
     "category:transport_alternative": "Transporte alternativo",
     "category:transport_car": "Tráfego individual",
@@ -78,5 +78,5 @@
     "category:water": "Hidrografia",
     "category:wikipedia": "Wikipédia",
     "category:works": "Fábricas",
-    "category:xmas": ""
+    "category:xmas": "Natal"
 }
diff --git a/memorial.json b/memorial.json
index 4095a13..143b72e 100644
--- a/memorial.json
+++ b/memorial.json
@@ -4,6 +4,7 @@
         "de": "Denkmäler",
         "en": "Memorials",
         "fr": "Mémoriaux",
+        "hu": "Emlékművek",
         "pt-br": "Memoriais"
     },
     "query": {
diff --git a/office.json b/office.json
index c66872f..b92ba34 100644
--- a/office.json
+++ b/office.json
@@ -3,7 +3,9 @@
     "name": {
         "de": "Ämter, Dienst- und Geschäftsstellen",
         "en": "Offices",
-        "fr": "Bureaux"
+        "fr": "Bureaux",
+        "hu": "Irodák, hivatalok",
+        "pt-br": "Escritórios e agências"
     },
     "query": {
         "14": "nwr[office]"
diff --git a/oil_gas.json b/oil_gas.json
index d74a1df..0f9acee 100644
--- a/oil_gas.json
+++ b/oil_gas.json
@@ -4,6 +4,7 @@
         "de": "Erdöl und Erdgas",
         "en": "Petroleum and natural gas",
         "fr": "Pétrole et gaz naturel",
+        "hu": "Kőolaj, földgáz",
         "pt-br": "Petróleo e gás"
     },
     "query": {
diff --git a/power_routes.json b/power_routes.json
index 4405a20..61c088e 100644
--- a/power_routes.json
+++ b/power_routes.json
@@ -2,7 +2,9 @@
     "type": "overpass",
     "name": {
         "en": "Power routes",
-        "fr": "Réseaux électriques"
+        "fr": "Réseaux électriques",
+        "hu": "Távvezetékek",
+        "pt-br": "Rotas de energia"
     },
     "query": {
         "10": "relation[type=route][route=power]"
diff --git a/public.json b/public.json
index cf28f62..4fad62c 100644
--- a/public.json
+++ b/public.json
@@ -13,7 +13,7 @@
         "ja": "公共サービス",
         "nl": "Openbare diensten",
         "pt": "Serviços públicos",
-        "pt-br": "Serviços públicos",
+        "pt-br": "Utilidade pública",
         "ro": "Servicii publice",
         "ru": "Общественные места",
         "uk": "Громадські місця"
diff --git a/railway-maxspeed.json b/railway-maxspeed.json
index 10fb8a4..1c756f2 100644
--- a/railway-maxspeed.json
+++ b/railway-maxspeed.json
@@ -14,36 +14,67 @@
     },
     "feature": {
         "pre": [
-            "{% if tags.maxspeed is not defined %}",
             "{% set maxspeedKmh = null %}",
             "{% set maxspeed = null %}",
             "{% set unit = null %}",
-            "{% else %}",
             "",
-            "{% if tags.maxspeed|matches(\"^[0-9]+$\") %}",
-            "{% set maxspeedKmh = tags.maxspeed %}",
-            "{% set maxspeed = tags.maxspeed %}",
-            "{% set unit = \"km/h\" %}",
+            "{% if tags.maxspeed is defined %}",
+            "  {% if tags.maxspeed|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedKmh = tags.maxspeed %}",
+            "    {% set maxspeed = tags.maxspeed %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif tags.maxspeed|matches( \"(^[0-9]+) mph$\") %}",
+            "    {% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeed = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
-            "",
-            "{% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}",
-            "{% if m %}",
-            "{% set maxspeedKmh = m[1] * 1.60934 %}",
-            "{% set maxspeed = m[1] %}",
-            "{% set unit = \"mph\" %}",
+            "{% if attribute(tags, 'maxspeed:forward') is defined %}",
+            "  {% if attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedFKmh = attribute(tags, 'maxspeed:forward') %}",
+            "    {% set maxspeedF = attribute(tags, 'maxspeed:forward') %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+ mph$\") %}",
+            "    {% set m = attribute(tags, 'maxspeed:forward')|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedFKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeedF = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
+            "{% if attribute(tags, 'maxspeed:backward') is defined %}",
+            "  {% if attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+$\") %}",
+            "    {% set maxspeedBKmh = attribute(tags, 'maxspeed:backward') %}",
+            "    {% set maxspeedB = attribute(tags, 'maxspeed:backward') %}",
+            "    {% set unit = \"km/h\" %}",
+            "  {% elseif attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+ mph$\") %}",
+            "    {% set m = attribute(tags, 'maxspeed:backward')|matches(\"(^[0-9]+) mph$\") %}",
+            "    {% set maxspeedBKmh = m[1] * 1.60934 %}",
+            "    {% set maxspeedB = m[1] %}",
+            "    {% set unit = \"mph\" %}",
+            "  {% endif %}",
             "{% endif %}",
             "",
             "{% if not maxspeedKmh %}",
             "{% set color = \"#404040\" %}",
             "{% else %}",
             "{% set color = colorInterpolate(const.colorMap, (maxspeedKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
+            "{% endif %}",
+            "",
+            "{% if maxspeedFKmh %}",
+            "{% set colorF = colorInterpolate(const.colorMap, (maxspeedFKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
+            "{% endif %}",
+            "",
+            "{% if maxspeedBKmh %}",
+            "{% set colorB = colorInterpolate(const.colorMap, (maxspeedBKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}",
             "{% endif %}"
         ],
         "description": [
-            "{% if maxspeed %}",
+            "{% if maxspeedF or maxspeedB %}",
+            "<span style='color: {{ colorB }}'>{{ maxspeedB|default(trans('unknown')) }}</span> / <span style='color: {{ colorF }}'>{{ maxspeedF|default(trans('unknown')) }}</span> {{ unit }}",
+            "{% elseif maxspeed %}",
             "<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>",
             "{% elseif tags.maxspeed %}",
             "{{ tags.maxspeed }}",
@@ -53,12 +84,30 @@
         ],
         "markerSymbol": null,
         "listMarkerSymbol": "line",
+        "styles": "{% if maxspeedB or maxspeedF %}left,right,default{% else %}default{% endif %}",
         "style": {
-            "width": "3",
+            "width": "{% if maxspeedB or maxspeedF %}0{% else %}4{% endif %}",
             "color": "{{ color }}",
-            "text": "{{ maxspeed }}          ",
+            "text": [
+                "{% if maxspeedB or maxspeedF %}",
+                "  {% if maxspeedB %}🡸 {{ maxspeedB }} {% endif %}|{% if maxspeedF %} {{ maxspeedF }} 🡺{% endif %}       ",
+                "{% else %}",
+                "  {{ maxspeed }}         ",
+                "{% endif %}"
+            ],
             "textRepeat": "1",
+            "textOffset": "4",
             "textFontWeight": "bold"
+        },
+        "style:left": {
+            "width": "2",
+            "color": "{{ colorB|default('#404040') }}",
+            "offset": "-1"
+        },
+        "style:right": {
+            "width": "2",
+            "color": "{{ colorF|default('#404040') }}",
+            "offset": "1"
         }
     },
     "const": {
diff --git a/renewables.json b/renewables.json
index 6c32493..19e9f42 100644
--- a/renewables.json
+++ b/renewables.json
@@ -4,6 +4,7 @@
         "de": "Erneuerbare Energien",
         "en": "Renewables",
         "fr": "Énergies renouvelables",
+        "hu": "Megújuló energia",
         "pt-br": "Renováveis"
     },
     "query": {
diff --git a/swimming_bathing.json b/swimming_bathing.json
index eccb601..f525711 100644
--- a/swimming_bathing.json
+++ b/swimming_bathing.json
@@ -3,7 +3,9 @@
     "name": {
         "de": "Schwimmen und Baden",
         "en": "Swimming and bathing",
-        "fr": "Natation/Baignade/Bains"
+        "fr": "Natation/Baignade/Bains",
+        "hu": "Fürdőzés, úszás",
+        "pt-br": "Natação e banho"
     },
     "query": {
         "13": [
@@ -24,7 +26,7 @@
             "nwr[natural~\"^(beach)\"];",
             "nwr[leisure~\"^(water_park|beach_resort)$\"];",
             "nwr[leisure=sports_centre][sport~\"^(|.*;)swimming(;.*|)$\"];",
-            "nwr[amenity=public_bath];",
+            "nwr[amenity~\"^(public_bath|shower)$\"];",
             "nwr[tourism=spa_resort];",
             "",
             "nwr[leisure=swimming_pool][access!=private];",
@@ -39,6 +41,9 @@
             "  {% set k = 'amenity' %}",
             "  {% set v = 'public_bath' %}",
             "  {% if attribute(tags, 'bath:type') %}{% set append = tagTrans('bath:type', attribute(tags, 'bath:type')) %}{% endif %}",
+            "{% elseif tags.amenity == 'shower' %}",
+            "  {% set k = 'amenity' %}",
+            "  {% set v = 'shower' %}",
             "{% elseif tags.tourism == 'spa_resort' %}",
             "  {% set k = 'tourism' %}",
             "  {% set v = tags.tourism %}",
@@ -129,6 +134,10 @@
             "zoom": 16,
             "taginfo": "leisure=sauna, sauna:type=*",
             "sign": "<i class=\"fa fa-thermometer-full\" aria-hidden=\"true\"></i>"
+        },
+        "amenity=shower": {
+            "zoom": 16,
+            "sign": "🚿 "
         }
     }
 }
diff --git a/tourism_services.json b/tourism_services.json
index 721916e..d48a470 100644
--- a/tourism_services.json
+++ b/tourism_services.json
@@ -8,13 +8,13 @@
         "en": "Tourism",
         "et": "Turism",
         "fr": "Tourisme",
-        "hu": "Turisztikai szolgáltatások",
+        "hu": "Szálláshelyek, turisztikai információk",
         "it": "Turismo",
         "ja": "観光",
         "nl": "Toerisme",
         "pl": "Turystyka",
         "pt": "Turismo",
-        "pt-br": "Serviços de turismo",
+        "pt-br": "Serviços turísticos",
         "ro": "Turism",
         "ru": "Туризм",
         "uk": "Туризм"
diff --git a/xmas.json b/xmas.json
index ab72802..2baa128 100644
--- a/xmas.json
+++ b/xmas.json
@@ -1,11 +1,14 @@
 {
     "type": "overpass",
     "name": {
+        "de": "Weihnachten",
         "en": "Christmas",
-        "fr": "Noël"
+        "fr": "Noël",
+        "hu": "Karácsony",
+        "pt-br": "Natal"
     },
     "query": {
-        "14": [
+        "13": [
             "(",
             "node[\"xmas:feature\"];",
             "way[\"xmas:feature\"];",
@@ -14,9 +17,17 @@
         ]
     },
     "feature": {
+        "pre": [
+            "{% set isCurrent = meta.timestamp > now|date_modify('-1 month')|date('Y') %}",
+            "{% set bgColor = isCurrent ? '#f2756a' : 'red' %}"
+        ],
         "title": "{{ attribute(tags, \"xmas:name\")|default(trans(\"unnamed\")) }}",
         "description": "{{ tagTransList(\"xmas:feature\", attribute(tags, \"xmas:feature\")) }}",
         "body": [
+            "{% if not isCurrent %}",
+            "<div style='border: 1px solid red; padding: 2px; margin-bottom: 2px;'>Feature has not been updated for the current season! Please check and set the tag 'xmas:lastcheck' to the current date.</div>",
+            "{% endif %}",
+            "",
             "{% if attribute(tags, 'xmas:location') %}",
             "<li class='hasSymbol'>",
             "  <i class=\"fa fa-globe\" aria-hidden=\"true\"></i>",
@@ -57,16 +68,15 @@
             "</li>",
             "{% endif %}"
         ],
-        "markerSign": [
-            "{{ attribute(const, attribute(tags, 'xmas:feature'))|raw }}",
-            ""
-        ]
+        "markerSign": "{{ attribute(const, attribute(tags, 'xmas:feature'))|raw }}",
+        "markerSymbol": "{{ markerPointer({\"fillColor\":bgColor})|raw }}",
+        "listMarkerSymbol": "{{ markerCircle({\"fillColor\":bgColor})|raw }}"
     },
     "const": {
-        "market": "<img src='maki:commercial'>",
+        "market": "<img data-src='maki:commercial'>",
         "tree": "<i class=\"fa fa-tree\" aria-hidden=\"true\"></i>",
         "shop": "<i class=\"fa fa-shopping-basket\" aria-hidden=\"true\"></i>",
-        "event": "<img src='maki:amusement-park'>"
+        "event": "<img data-src='maki:amusement-park'>"
     },
     "info": [
         "<table>",
@@ -76,6 +86,10 @@
         "    <td>{{ tagTrans('xmas:feature', value) }}</td>",
         "  </tr>",
         "{% endfor %}",
+        "  <tr>",
+        "    <td>{{ markerCircle({\"fillColor\":\"red\"})|raw }}</td>",
+        "    <td>outdated feature</td>",
+        "  </tr>",
         "</table>"
     ]
 }