diff --git a/iwm_browser/templates/levelCard.html b/iwm_browser/templates/levelCard.html
new file mode 100644
index 0000000..9ed2fb4
--- /dev/null
+++ b/iwm_browser/templates/levelCard.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}
+
+
{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎
+
Replays visible: {{ "always" if map['ReplayVisibility'] == 2 }}{{ "after clear" if map['ReplayVisibility'] == 0 }}
+
Gems : {{ map['DragonCoins'] }}
+ {% if map['Description'] != ''%}
{{ map['Description'] }}
{% endif %}
+
+
+
+ Full server response
+
+ Key | Value |
+
+ {% for value in map %}
+
+ {{value}} | {{map[value]}} |
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% set BestTime = convert_times(map['BestTimePlaytime']) %}
+ {% set BestFullTime = convert_times(map['BestFullTimePlaytime']) %}
+
+ {% if map['BestFullTimeUserID'] != 0 %}
Best 100% Time:
{{ map['BestFullTimeUsername'] }} [{{ BestFullTime[0] }}:{{ BestFullTime[1] }}:{{ BestFullTime[2] }}]{{ "(illegal time)" if not map['DragonCoins'] }}
{% endif %}
+
+
+
diff --git a/iwm_browser/templates/levelInfo.html b/iwm_browser/templates/levelInfo.html
index 4c15e93..5da17f7 100644
--- a/iwm_browser/templates/levelInfo.html
+++ b/iwm_browser/templates/levelInfo.html
@@ -1,78 +1,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}
-
-
{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎
-
Replays visible: {{ "always" if map['ReplayVisibility'] == 2 }}{{ "after clear" if map['ReplayVisibility'] == 0 }}
-
Gems : {{ map['DragonCoins'] }}
- {% if map['Description'] != ''%}
{{ map['Description'] }}
{% endif %}
-
-
-
- Full server response
-
- Key | Value |
-
- {% for value in map %}
-
- {{value}} | {{map[value]}} |
-
- {% endfor %}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% include 'levelCard.html' %}
-
-
-
- {% set BestTime = convert_times(map['BestTimePlaytime']) %}
- {% set BestFullTime = convert_times(map['BestFullTimePlaytime']) %}
-
- {% if map['BestFullTimeUserID'] != 0 %}
Best 100% Time:
{{ map['BestFullTimeUsername'] }} [{{ BestFullTime[0] }}:{{ BestFullTime[1] }}:{{ BestFullTime[2] }}]{{ "(illegal time)" if not map['DragonCoins'] }}
{% endif %}
-
-
-
-
-
-
-
-
-
-
+
diff --git a/iwm_browser/templates/playlist.html b/iwm_browser/templates/playlist.html
index d1ef9d8..ff7e0da 100644
--- a/iwm_browser/templates/playlist.html
+++ b/iwm_browser/templates/playlist.html
@@ -1,86 +1,45 @@
-
-
-
IWM Browser
-
-
-
-
-
-
-
-
-
-
-
-
{{ response.Name }}
-
-
ID: {{ response.ID }}
-
Maps: {{ response.MapCount }}
-
- {% if response.Maps %}
-
- {% for map in response.Maps %}
-
-
-
-
-
-
Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}
-
-
{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎
-
Replays visible: {{ "always" if map['ReplayVisibility'] == 2 }}{{ "after clear" if map['ReplayVisibility'] == 0 }}
-
Gems : {{ map['DragonCoins'] }}
- {% if map['Description'] != ''%}
{{ map['Description'] }}
{% endif %}
-
-
-
- Full server response
-
- Key | Value |
-
- {% for value in map %}
-
- {{value}} | {{map[value]}} |
-
- {% endfor %}
-
-
-
-
-
-
-
-
- {% set BestTime = convert_times(map['BestTimePlaytime']) %}
- {% set BestFullTime = convert_times(map['BestFullTimePlaytime']) %}
-
- {% if map['BestFullTimeUserID'] != 0 %}
Best 100% Time:
{{ map['BestFullTimeUsername'] }} [{{ BestFullTime[0] }}:{{ BestFullTime[1] }}:{{ BestFullTime[2] }}]{{ "(illegal time)" if not map['DragonCoins'] }}
{% endif %}
-
-
+
+
+
IWM Browser
+
+
+
+
+
+
+
+
+
+
+
+
{{ response.Name }}
+
+
ID: {{ response.ID }}
+
Maps: {{ response.MapCount }}
-
- {% endfor %}
-
+ {% if response.Maps %}
+
+ {% for map in response.Maps %}
+ {% include 'levelCard.html' %}
+ {% endfor %}
+
+ {% endif %}
+
-
- {% endif %}
-
-
-
-
+
diff --git a/iwm_browser/templates/search.html b/iwm_browser/templates/search.html
index 0754477..ed30f81 100644
--- a/iwm_browser/templates/search.html
+++ b/iwm_browser/templates/search.html
@@ -1,127 +1,53 @@
-
-
-
IWM Browser - {{ QueryValues["q"] if QueryValues["q"] is not none }}{{ QueryValues["type"] }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% if searchResults %}
-
- {% for map in searchResults %}
-
-
-
-
-
-
Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}
-
-
{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎
-
Replays visible: {{ "always" if map['ReplayVisibility'] == 2 }}{{ "after clear" if map['ReplayVisibility'] == 0 }}
-
Gems : {{ map['DragonCoins'] }}
- {% if map['Description'] != ''%}
{{ map['Description'] }}
{% endif %}
-
-
-
- Full server response
-
- Key | Value |
-
- {% for value in map %}
-
- {{value}} | {{map[value]}} |
-
- {% endfor %}
-
-
-
-
-
-
-
-
- {% set BestTime = convert_times(map['BestTimePlaytime']) %}
- {% set BestFullTime = convert_times(map['BestFullTimePlaytime']) %}
-
- {% if map['BestFullTimeUserID'] != 0 %}
Best 100% Time:
{{ map['BestFullTimeUsername'] }} [{{ BestFullTime[0] }}:{{ BestFullTime[1] }}:{{ BestFullTime[2] }}]{{ "(illegal time)" if not map['DragonCoins'] }}
{% endif %}
-
+
+
+
IWM Browser - {{ QueryValues["q"] if QueryValues["q"] is not none }}{{ QueryValues["type"] }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {% include "searchBar.html" %}
+ {% if searchResults %}
+
+ {% for map in searchResults %}
+ {% include "levelCard.html" %}
+ {% endfor %}
-
- {% endfor %}
-
-
-
-
- {% endif %}
+
+
+ {% endif %}
-
-
-
+
+
+
diff --git a/iwm_browser/templates/searchBar.html b/iwm_browser/templates/searchBar.html
new file mode 100644
index 0000000..d535c84
--- /dev/null
+++ b/iwm_browser/templates/searchBar.html
@@ -0,0 +1,39 @@
+
+